Guns.ru Talks
мужской разговор
OСTAGON-у : За слова ответите или как? ( 1 )

тема закрыта

Знакомства | вход | зарегистрироваться | поиск | картинки | календарь | поиск оружия, магазинов | фотоконкурсы | Аукцион
unname22
P.M.
29-5-2017 07:28 unname22
Объявил тут в соседней, ныне закрытой, ветке OCTAGON, дескать применение ООП повышает надежность кода:


Да понял я, что вы не поняли. ООП не для сокращения писанины, а для того же, для чего и GOTO запрещали, для повышения надёжности.

При прямом вопросе как, от ответа он уклонялся и юлил, меняя тему.
В общем чтобы наконец-то увидеть ответ на вопрос пришлось завести отдельную ветку.

lexanet
P.M.
29-5-2017 07:40 lexanet
Может повысить надежность, в плане повышения эффективности поиска и локализации ошибок. Особенно в чужом коде. Так же, как и "запрет" goto. Но, не более. Это все инструмент. Главное, что в голове у создателя. Это чисто мое мнение. Сам сижу на "чистом" С. ООП эпизодически.
unname22
P.M.
29-5-2017 07:49 unname22
lexanet
Вы ведь понимаете, что это не ответ.
Я перед этим вообще выразил скепис в необходимости везде совать ООП, поскольку на практике просто ниразу не видел, чтобы его применение действительно оправдывало затраты.

Это просто бич какой-то. Везде суют ООП, везде где нужно и ненужно стремятся всунуть БД и так далее. Неужели уровень современного программиста настолько упал даже по сравнению с тем, что было два десятилетия назад?

Бывший
P.M.
29-5-2017 07:59 Бывший
А какая альтернатива, ассемблер что-ли?
Сейчас требования к срокам разработки предъявляют немилосердные. И - да, уровень погроммиста уже не тот. Вернее, понимание программирования поменялось.
lexanet
P.M.
29-5-2017 08:00 lexanet
Originally posted by unname22:

Неужели уровень современного программиста настолько упал


Да. Уровень входа ниже плинтуса. В принципе, это нормально. И современные среды разработки с интеллектуальными системами генерации кода или подсказки следующего шага этому способствуют. Пусть будет больше программистов, плохих и хороших
А насчет ООП, меня учили этому в институте, лет 20 назад. Так до сих пор не пригодилось
Бывший
P.M.
29-5-2017 08:05 Бывший
Я не спец по программированию, но читал старые книжки про программирование (по времени написания МС-ДОС только появился), рассуждения программистов о будущем их отрасли, в том числе и Го То, и сетования на то что погроммисты уже не те, итд.
OCTAGON
P.M.
29-5-2017 08:52 OCTAGON
Русский не родной? Название темы поменяй.
OCTAGON
P.M.
29-5-2017 09:30 OCTAGON
Значит не родной. Я не про опечатку))
почти аноним
P.M.
29-5-2017 09:37 почти аноним
если писать софт не в одну харю, то по-любому нужно ооп. или всем держать в голове все строки. а нафига это надо. есть вася - он программит обработку клавиатуры, петя программит ввод-вывод по сети, коля - хранилище всех данных, куда вася пишет, а петя читает. и в любой момент времени их части могут вызывать друг-друга.
unname22
P.M.
29-5-2017 09:58 unname22
почти аноним
В данном случае ПОП ничем не хуже.
wolfo
P.M.
29-5-2017 10:19 wolfo
А чем именно ООП не нравится? Синтаксисом или организацией данных/кода?
lexanet
P.M.
29-5-2017 10:28 lexanet
Originally posted by wolfo:

А чем именно ООП не нравится?


Вопрос, есть ли у ООП реально преимущества перед ПОП в плане надежности. Я так думаю.
wolfo
P.M.
29-5-2017 10:35 wolfo
ок. переформулирую -
что считать за ООП - синтаксис или структуру кода/данных

например библиотека OpenSSL - это что? Компилируется Сями, а структура ООП

Бывший
P.M.
29-5-2017 10:40 Бывший
Originally posted by OCTAGON:

Значит не родной. Я не про опечатку))


Та опечатка кстати звучала на казахском языке не слишком цензурно
unname22
P.M.
29-5-2017 11:02 unname22
wolfo
Я в принципе про подход/ Он от синтаксиса и способов реализации не зависит.
wolfo
P.M.
29-5-2017 11:27 wolfo
Понятно.
Ну так чему учили - из того и лепят.
Обычное дело - для хранения 10 строк - SQL-база
HighMan
P.M.
29-5-2017 18:38 HighMan
unname22, и чего Вам неймеца?
Во первых, Октагон мог не верно выразить мысль и, в результате, получилось, что применение ООП влияет на безопасность приложения
Во вторых, возможно, что мысль была не верно интерпритирована руками и клавиатурой. У меня такое бывало. Как-то меня заклинило на GPS и GPRS. И на протяжении нескольких моих постов за навигацию отвечал GPRS. Меня, просто, поправили.
А, вообще, ООП, обычно, сильно ускоряет написание кода. Например, писать на чистом WinAPI - тот еще геморрой. MSDN более чем существенно экономит время. А то, что приложение, написанное на WinAPI, работает быстрее.. . Какой смысл? Окно откроется на 0.000001 секунду быстрее?
Или, например, пишется интерфейс для работы с БД. Гнаться за скоростью работы интерфейса? Оптимизировать код? Да ну нах! Под такую задачу, не то что С, а С# излишество. Проще забабахать на языке высокого уровня. Выигранные время, лучше потратить на оптимизацию SQL запросов.
У каждого инструмента - своя область применения. Глупо ювелирным молоточком заколачивать сваи.
TemkA
P.M.
29-5-2017 20:47 TemkA
wolfo:
ок. переформулирую -
что считать за ООП - синтаксис или структуру кода/данных

например библиотека OpenSSL - это что? Компилируется Сями, а структура ООП

За ООП считать использование классов

Если они там внутри есть - значит она написана с использованием ООП

Остаётся вопрос формата внешнего API

Некоторые делают двойной: и в виде классов и в виде функций, но тогда при каждом вызове извольте предъявлять все нужные структуры

TemkA
P.M.
29-5-2017 20:53 TemkA
Теперь отвечая на изначальный вопрос

Если люди начинают увлекаться, то там наступает лютый пи#дец
Типа перегрузки операторов и т.п.
Уже никто толком не знает как там что работает

Microsoft, кстати, этой самой увлеченностью изрядно испортил в принципе относительно стройный в начале C#

Ведёт ли наступление непонимания к повышению надёжности - вопрос такой, интересный

С другой стороны возьня со всякими низкоуровневыми вещами, когда там структуры начинают инициализровать memset'ом - тоже ещё тот цирк

Нужна разумная грань

И никакого STL'а

TemkA
P.M.
29-5-2017 20:58 TemkA
lexanet:
Так же, как и "запрет" goto.

Меня вот больше напрягает манера некоторых товарищей зафигачить пачку return'ов внутри процедуры, перед каждым дублируя какие-то деинициализационные вещи. Обязательно где-нибудь да забудут что-то осовбодить, очистить и т.п.

ferrero
P.M.
29-5-2017 21:08 ferrero
Когда же всех мудагов забанят? Уже не смешно, весна закончилась, а бредни в самом разгаре.
TemkA
P.M.
29-5-2017 21:12 TemkA
unname22:
Это просто бич какой-то. Везде суют ООП, везде где нужно и ненужно стремятся всунуть БД и так далее. Неужели уровень современного программиста настолько упал даже по сравнению с тем, что было два десятилетия назад?

Подождите

Во-первых вы его будете вынуждены пользовать, если используемые вами сторонние библиотеки это подразумевают

---------
https://www.codeproject.com/Articles/1181213/Easy-OpenCL-Multiple-Device-Load-Balancing-and-Pip

Hardware.ClDevices gpu1 = Hardware.ClPlatforms.all().devicesWithMostComputeUnits()[0];
Pipeline.ClPipelineStage add = new Pipeline.ClPipelineStage();
add.addDevices( gpu1);
ClArray;float; inputArrayGPU1 = new ClArray;float;(1024);
ClArray;float; outputArrayGPU1 = new ClArray;float;(1024);
add.addInputBuffers(inputArrayGPU1);
add.addOutputBuffers(outputArrayGPU1);
add.addKernels(@"
__kernel void vecAdd(__global float * input, __global float * output)
{
int id=get_global_id(0);
output[id]=input[id]+1.0f;
}", "vecAdd", new int[] { 1024/*global range*/ }, new int[] { 256/* local range*/ });


d.prependToStage(mul); // prepends add stage to mul stage
var pipeline = add.makePipeline(); // creates a 2-stage pipeline out of add and mul.

if(pipeline.pushData(new object[] { arrayToGetData }, new object[] { arrayToReceiveResult }))
{
Console.WriteLine("Needs M*2+1 iterations");
Console.WriteLine("Extra client arrays for both inputs and outputs of pipeline");
Console.WriteLine("First result is ready!");
}
---------

Полу-чистый хорош, но много возьни всякой мелкой

---------
https://www.codeproject.com/Articles/1178304/StringLib-C-Library-Adding-String-Type-to-C

int main()
{
string string_a;
string string_b;
string_set(&string_a, "hello world\nnew line test");
string_newline(&string_a, "nothing to see here");

string_print(string_a);
printf("SIZE: %d\n", string_getSize(string_a));

FILE *foo = fopen("text.txt", "w");
string_write(string_a, foo);
fclose(foo);

foo = fopen("text.txt", "r");
string_read(&string_b, foo);
string_print(string_b);
printf("SIZE: %d\n", string_getSize(string_b));
string_delete(&string_a);
string_delete(&string_b);
return 0;
}
---------

А вот когда людей самих куда-то уносит - это всё

---------
https://www.codeproject.com/Articles/1088293/Units-and-measures-for-Cplusplus

template;class T1, class T2, class T3;
auto distance_moved(ACCELERATION::unit;T1; accel,
VELOCITY::unit;T2; init_velocity,
TIME::unit;T3; t)
{
return 0.5 * accel * t* t + init_velocity*t;
}

template;class T1, class T2, class T3;
auto max_temperature_diff(TEMPERATURE::measure;T1; t1,
TEMPERATURE::measure;T2; t2,
TEMPERATURE::measure;T3; t3)
{
return (abs(t1 - t2) ; abs(t2 - t3)) ?
((t3 - t1) ; abs(t1 - t2)) ? (t3 - t1) : abs(t1 - t2)
:
((t3 - t1) ; abs(t2 - t3)) ? (t3 - t1) : abs(t2 - t3);
}
---------

И там чем дальше, тем дремучей

---------
The general implementation of Sys2Sys<> defines its factor constant as

static constexpr double factor =
#define ULIB_ENUMERATED_TERM(n) \
( \
(dims: ##n != 0) ? \
int_power<dims: ##n> \
: f(Base2Base4Dim<n, from_sys="">::factor)\
: 1)
ULIB_CONCAT_ENUMERATED_TERMS_FOR_ALL_DIMS(*)
#undef ULIB_ENUMERATED_TERM
;
</n,>

which expands for 5 dimensions as:

static constexpr double factor =
((dims: 1 != 0) ? int_power<dims: 1>: f(
Base2Base4Dim<n, from_sys, to_sys>::factor): 1)
* ((dims: 1 != 0) ? int_power<dims: 1>: f(
Base2Base4Dim<n, from_sys, to_sys>::factor): 1)
* ((dims: 1 != 0) ? int_power<dims: 1>: f(
Base2Base4Dim<n, from_sys, to_sys>::factor): 1)
* ((dims: 1 != 0) ? int_power<dims: 1>: f(
Base2Base4Dim<n, from_sys, to_sys>::factor): 1)
* ((dims: 1 != 0) ? int_power<dims: 1>: f(
Base2Base4Dim<n, from_sys="">::factor): 1);
</n,>
---------

Вот он насуёт такого говна-только-ему-понятного и привет

Вон даже форумный движок одурел и за смайлики посчитал

TemkA
P.M.
29-5-2017 21:25 TemkA
ferrero:
Уже не смешно, весна закончилась, а бредни в самом разгаре.

Так про баб-то тем нету

Выясняют правильность цитат на стенах в вагонах метро

HighMan
P.M.
30-5-2017 00:52 HighMan
TemkA:

Меня вот больше напрягает манера некоторых товарищей зафигачить пачку return'ов внутри процедуры, перед каждым дублируя какие-то деинициализационные вещи. Обязательно где-нибудь да забудут что-то осовбодить, очистить и т.п.

+ много.
Часто приходится многократно ретурнить, высвобождать ресурсы, закрывать соединения и т.д.. GOTO много меньшее зло, однако, все равно не использую. Не привык.
Кстати, я так толком и не понял, почему использование goto, дурной тон? Вообще-то джамп и условные джампы, инструкции процессора. Почему же их использование в С/С++ дурной тон?
Куда более дурной тон, на мой и не только мой взгляд, это нагромождение дефинишинов. Вот где моск заворачивается, однако, дефинишины используются повсеместно и без меры.

Кстати, я в предыдущем посте допустил ошибку. Приплел MSDN, хотя имел в виду MFC

TemkA
P.M.
30-5-2017 01:12 TemkA
HighMan:
Кстати, я так толком и не понял, почему использование goto, дурной тон?

Возможно потому, что это подразумевает использование лейблов
Лейблы как бы предполагают их осмысленное наименование
А ты типа должен уметь играться с нонеймовыми {}, а если совсем надо уж пометить "шо це було", то написать комментарий

------

Сейчас подчитаю что граждане пишут

-------

Пока могу ещё добавить своё - "GOTO - удел Бейсика"
А хуже Бейсика - только Паскаль

TemkA
P.M.
30-5-2017 01:22 TemkA
TemkA:
Сейчас подчитаю что граждане пишут

Да, прочитал, мысли верные

http://forum.sources.ru/index.php?showtopic=54769&st=0

Ссылаются на Бейсик и на возможности использования эквивалентных замен управления переходами

==
do
{
if( .. ) break;
....
...
if( .. ) break;
....
...
if( .. ) break;
....
==

==
try
{
for(.. )
for(.. )
for(.. )
if(.. )
throw;

}
==

Вот, кстати
Пользующие экскепшены - отдельные пи..... .
За это их всенепременно нужно закопать

Хуже них - только любители assert'ов

Обломов
P.M.
30-5-2017 02:24 Обломов
Ужас, как это важно. Для России и самопознания.
TemkA
P.M.
30-5-2017 02:48 TemkA
Обломов:
Для России и самопознания.

Россия не нужна
Самопознание - тоже

Бывший
P.M.
30-5-2017 05:50 Бывший
Originally posted by TemkA:

Вон даже форумный движок одурел и за смайлики посчитал


Вы эта осторожнее! А то накидают сюда программных кодов сейчас, ганза взбесится и пойдет сама гулять по сети, попутно запуская ядерные ракеты по Вашингтону и Нью Йорку.

Бывший
P.M.
30-5-2017 05:54 Бывший
Originally posted by TemkA:

Пока могу ещё добавить своё - "GOTO - удел Бейсика"
А хуже Бейсика - только Паскаль


Гм, я попрошу.. .
ГоТо есть и в Паскале, и без Гото можно и в Басике спокойно кодить. Кстати самообъявление переменных в теле программы в Басике - на самом деле предполагает наличие высокого уровеня самодисциплины программиста. В Паскале-то думать особо не надо, компилятор первый возмутится по поводу необъявленных переменных в теле программы.

Да, и судя по литературе гото - это анахронизм ещё с 80-х годов. Странно что его вообще вспоминают до сих пор.

TemkA
P.M.
30-5-2017 06:05 TemkA
Бывший:
Странно что его вообще упоминают до сих пор.

Ну вот гугланул ради интереса

goto inurl:github.com/openssl/openssl/

Вполне себе имеется

https://github.com/openssl/openssl/blob/master/apps/ciphers.c

хотя тут, наверное, оправдано

unname22
P.M.
30-5-2017 06:18 unname22
HighMan:
unname22, и чего Вам неймеца?
Во первых, Октагон мог не верно выразить мысль и, в результате, получилось, что применение ООП влияет на безопасность приложения
Во вторых, возможно, что мысль была не верно интерпритирована руками и клавиатурой. У меня такое бывало. Как-то меня заклинило на GPS и GPRS. И на протяжении нескольких моих постов за навигацию отвечал GPRS. Меня, просто, поправили.
А, вообще, ООП, обычно, сильно ускоряет написание кода. Например, писать на чистом WinAPI - тот еще геморрой. MSDN более чем существенно экономит время. А то, что приложение, написанное на WinAPI, работает быстрее.. . Какой смысл? Окно откроется на 0.000001 секунду быстрее?
Или, например, пишется интерфейс для работы с БД. Гнаться за скоростью работы интерфейса? Оптимизировать код? Да ну нах! Под такую задачу, не то что С, а С# излишество. Проще забабахать на языке высокого уровня. Выигранные время, лучше потратить на оптимизацию SQL запросов.
У каждого инструмента - своя область применения. Глупо ювелирным молоточком заколачивать сваи.

Если бы он не верно выразил мысль - уже бы исправился. Исправил же он меня, когда я понятие "надежность" подменил на "безопасность"

Касаемо второй части, я не подойду и близко к MSDN и тем более WinAPI.
Если приспичит рисовать интерфейс, это скорее всего будет Tk как наиболее быстрый вариант, ну или Gtk+.
А использование БД как затычки к каждой заднице я вообще не понимаю.
Число задач, где реально нужна БД, это менее 1% от ее реального применения. В курсе, что до нескольких миллионов строк БД уступает и серьезно по производительности скажем работе с обычными текстовыми файлами. А то задрали уже со своим SQL.

Ну ладно, это все мое мнение и тонкости.
А я же жду ответа на конкретный вопрос, конкретно от OCTAGON-а, как же все-таки ООП повышает надежность?????

TemkA
P.M.
30-5-2017 06:20 TemkA
Бывший:
и без Гото можно и в Басике спокойно кодить.

==
10 INPUT "What is your name: "; U$
20 PRINT "Hello "; U$
30 INPUT "How many stars do you want: "; N
40 S$ = ""
50 FOR I = 1 TO N
60 S$ = S$ + "*"
70 NEXT I
80 PRINT S$
90 INPUT "Do you want more stars? "; A$
100 IF LEN(A$) = 0 THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye "; U$
140 END
==

И как вы без IF'ов что-то сделаете ?

Бывший:
Кстати самообъявление переменных в теле программы в Басике - на самом деле предполагает наличие высокого уровеня самодисциплины программиста. В Паскале-то думать особо не надо, компилятор первый возмутится по поводу необъявленных переменных в теле программы.

А в чём самодисциплина ?

В Си - тоже нужно было в начале функции, в Си++ - стало можно и по ходу дела

unname22
P.M.
30-5-2017 06:26 unname22
TemkA:

Меня вот больше напрягает манера некоторых товарищей зафигачить пачку return'ов внутри процедуры, перед каждым дублируя какие-то деинициализационные вещи. Обязательно где-нибудь да забудут что-то осовбодить, очистить и т.п.

Вот тут как раз всеми нелюбимый goto может быть полезен вместо return.
Просто перейти к концу процедуры, где все конфигурируется обратно к дефолту и вызывается нормальный return.

И как без goto на асме жить? скажете устарело? А например загрузчики?
Да и на том же MSP430 ассемблер просто диво как хорош.

Так что аккуратное применения goto при необходимости и включении головы может быть вполне полезным и понятным.

Далее по вашим постам:
Да си чистый хорош, но, там где ресурсы ограничены, те же контроллеры приходится все делать руками.
А на больших мощностях на си только совсем уж ресурсоемкие вещи делать, а остальное ИМХО - удел высокоуровневых скриптовых языков. В юности я очень любил и люблю Perl, там даже производительность практически не уступает. Но приличные проблемы возникают когда надо делать порт в винду, либо тащить на какую-то встроенную системк, да и вообще переносить, гибкость и модульность тут начинают боком вылезать. Потому часто применяю Tcl и его диалекты.
Накидал быстро полумакет,если устроило, переписал для производительности именно нужные части на сях и привет.
Любителям ООП есть и питон с руби в этой области.

TemkA
P.M.
30-5-2017 06:36 TemkA
unname22:
Касаемо второй части, я не подойду и близко к MSDN и тем более WinAPI

Так вы этот, Delphi'ст что ли типа ?

Они тоже никуда не подходят. Им рантайма хватает внутреннего типа
А формочки с событиями - встроенные

unname22:
Исправил же он меня, когда я понятие "надежность" подменил на "безопасность"

Ну я вам могу наверное про безопасность рассказать
Из свежего

Наверное когда у вас что-то типа

TString UserResponse;

...

if (Config::GetItem("AdminPassword") == UserResponse)

то может быть всё хорошо

А вот тут Intel отметился:

if(strncmp(computed_response, user_response, response_length))
deny_access();

К сожалению оказалось, что response_length может быть равен 0 и тогда...

Погуглите последнюю строчку - найдёте историю
Изрядный Upppps получился


unname22
P.M.
30-5-2017 06:43 unname22
TemkA:

Так вы этот, Delphi'ст что ли типа ?

Попрошу в этой теме матом не выражаться, тем более в мой адрес.

unname22
P.M.
30-5-2017 06:46 unname22
TemkA:


if(strncmp(computed_response, user_response, response_length))
deny_access();

Гуглить если честно особо некогда, но судя по всему интел в качестве оптимизации заложил "ленивость" в данное сравнение?

TemkA
P.M.
30-5-2017 06:58 TemkA
unname22:
И как без goto на асме жить? скажете устарело? А например загрузчики?

Не писать на нём, потому как сильно мешает портабельности
Те же ядра операционок пишутся на Си, с минимальным привлечением исключительно в архитектурно-зависимых местах

unname22:
Да си чистый хорош, но, там где ресурсы ограничены, те же контроллеры приходится все делать руками.
А на больших мощностях на си только совсем уж ресурсоемкие вещи делать, а остальное ИМХО - удел высокоуровневых скриптовых языков

Мне в своё время рассказывали про всякие FPGA, что можно на Си, а компилятор всё это в вентили преобразует

Судя по ссылкам - не врали

https://stackoverflow.com/questions/8988629/can-you-program-fpgas-in-c-like-languages

Если спуститься к более приземлённым вещам
Например играм с Arduino, то там изначально вариант Си

http://www.robotshop.com/blog/en/arduino-5-minute-tutorials-lesson-2-basic-code-blink-led-2-3639

https://www.arduino.cc/en/Tutorial/BuiltInExamples

В совсем более скромных контроллерах там уже наверное вам придётся так или иначе, хотя может производители всё же любят своих клиентов и сделали компилятор

Как-то давно ещё смотрел какие-то смарт-карты Java Card
Как следует из названия - там Java
Фигулька размером с сим-карту, а как-то вот успевает крутить

unname22:
В юности я очень любил и люблю Perl

Он, кстати, сдох

TemkA
P.M.
30-5-2017 06:59 TemkA
unname22:
Гуглить если честно особо некогда, но судя по всему интел в качестве оптимизации заложил "ленивость" в данное сравнение?

Он заложил вход на все свои серверы, сделанные за 10 лет, со включенным AMT вход с пустым паролем...


Бывший
P.M.
30-5-2017 07:12 Бывший
Originally posted by TemkA:

Ну вот гугланул ради интереса

goto inurl:github.com/openssl/openssl/

Вполне себе имеется

https://github.com/openssl/openssl/blob/master/apps/ciphers.c

хотя тут, наверное, оправдано


Там я не спец, но подозреваю что там тоже можно обойтись без.
Originally posted by TemkA:

==
10 INPUT "What is your name: "; U$
20 PRINT "Hello "; U$
30 INPUT "How many stars do you want: "; N
40 S$ = ""
50 FOR I = 1 TO N
60 S$ = S$ + "*"
70 NEXT I
80 PRINT S$
90 INPUT "Do you want more stars? "; A$
100 IF LEN(A$) = 0 THEN GOTO 90
110 A$ = LEFT$(A$, 1)
120 IF A$ = "Y" OR A$ = "y" THEN GOTO 30
130 PRINT "Goodbye "; U$
140 END
==

И как вы без IF'ов что-то сделаете ?


В смысле?
Там рипиты можно использовать. Синтаксис не помню, но в Басике точно есть операторы цикла с пред- и/или цикла с пост-условием. Легко и изящно
Originally posted by TemkA:

А в чём самодисциплина ?

В Си - тоже нужно было в начале функции, в Си++ - стало можно и по ходу дела



Самодисциплина в том что надо самостоятельно и прилежно объявлять все переменные в соответствующем разделе. Бэйсик-то всё и так схавает, конечно.. . но просто чтобы самому не запутаться.
С другой стороны в нем заложена возможность как бы динамического объявления переменных. Например в каких-то условиях если не нужно, то переменная и не объявляется и не занимает ОЗУ, а когда нужно - она прямо в теле программы объявляется.
Хотя.. . это уже прошлый век при нынешних гигабайтах озу, сэкономленные 2-4 байта выглядят как-то нелепо, да. О времена, о нравы

>
Guns.ru Talks
мужской разговор
OСTAGON-у : За слова ответите или как? ( 1 )