Вход на сайт
подскажите
153
NEW 09.11.07 23:45
если я пишу а=1; а=2; а=3; что делает компайлер...даёт он а только значение 3 или принимает а при пробежки программы все ети три значения и остаётся на 3?
исвените за такой вопрос, но я не специалист в программирование...
исвените за такой вопрос, но я не специалист в программирование...
NEW 10.11.07 14:44
в ответ GANDJUBAS 10.11.07 01:05
Хороший компайлер просто выбросит первые.
------
"Хорший" компайлер будет смотреть определение этого 'а', на предмет volatile, в частности.
При его наличии - будут выполняться все три присваивания.
При отсутствии volatile и если оптимизация разрешена, то, в зависимости от разрешенного уровня оптимизации,
может оставить код для всех трех присваиваний или удалить часть из них, включая удаление всех трех.
Может так же поменять определение переменной, добавив - register - и разместить ее в регистре процессора вместо памяти...
Вроде все - вынесение за пределы цикла тут не применяется...
------
"Хорший" компайлер будет смотреть определение этого 'а', на предмет volatile, в частности.
При его наличии - будут выполняться все три присваивания.
При отсутствии volatile и если оптимизация разрешена, то, в зависимости от разрешенного уровня оптимизации,
может оставить код для всех трех присваиваний или удалить часть из них, включая удаление всех трех.
Может так же поменять определение переменной, добавив - register - и разместить ее в регистре процессора вместо памяти...
Вроде все - вынесение за пределы цикла тут не применяется...
NEW 13.11.07 03:43
в ответ YoMaYo 12.11.07 12:55
Ты бы написал на каком языке пишешь, телепатов здесь нет. Но если это С/С++, то можно использовать volatile - http://en.wikipedia.org/wiki/Volatile_variable
NEW 13.11.07 19:39
а как написать тогда, чтоб быт уверенным, что а будет инитиализированна три раза?
------
scorpi_ уже написал.
Он правда не спросил - А зачем надо присваивать три раза? Почему нужны именно эти значения? С точки зрения кода смысла в них нет.
Если проще - напиши на чем пишешь и какую задачу решаешь. Тогда можно будет что-то советовать...
------

Он правда не спросил - А зачем надо присваивать три раза? Почему нужны именно эти значения? С точки зрения кода смысла в них нет.
Если проще - напиши на чем пишешь и какую задачу решаешь. Тогда можно будет что-то советовать...