Login
подскажите
153
09.11.07 23:45
если я пишу а=1; а=2; а=3; что делает компайлер...даёт он а только значение 3 или принимает а при пробежки программы все ети три значения и остаётся на 3?
исвените за такой вопрос, но я не специалист в программирование...
исвените за такой вопрос, но я не специалист в программирование...
NEW 10.11.07 01:05
in Antwort YoMaYo 09.11.07 23:45
Зависит от компайлера. Разные бывают. В простом будет по-очереди присваивать все 3 значения. Хороший компайлер просто выбросит первые.
NEW 10.11.07 01:46
in Antwort YoMaYo 09.11.07 23:45
NEW 10.11.07 09:54
in Antwort GANDJUBAS 10.11.07 01:05
NEW 10.11.07 11:56
in Antwort digital.pilot 10.11.07 01:46
Модула-2. Щас прибежит нас спец по с++ и начнет втирать, что надо написать класс :-D
NEW 10.11.07 14:32
in Antwort digital.pilot 10.11.07 01:46
NEW 10.11.07 14:44
in Antwort GANDJUBAS 10.11.07 01:05
Хороший компайлер просто выбросит первые.
------
"Хорший" компайлер будет смотреть определение этого 'а', на предмет volatile, в частности.
При его наличии - будут выполняться все три присваивания.
При отсутствии volatile и если оптимизация разрешена, то, в зависимости от разрешенного уровня оптимизации,
может оставить код для всех трех присваиваний или удалить часть из них, включая удаление всех трех.
Может так же поменять определение переменной, добавив - register - и разместить ее в регистре процессора вместо памяти...
Вроде все - вынесение за пределы цикла тут не применяется...
------
"Хорший" компайлер будет смотреть определение этого 'а', на предмет volatile, в частности.
При его наличии - будут выполняться все три присваивания.
При отсутствии volatile и если оптимизация разрешена, то, в зависимости от разрешенного уровня оптимизации,
может оставить код для всех трех присваиваний или удалить часть из них, включая удаление всех трех.
Может так же поменять определение переменной, добавив - register - и разместить ее в регистре процессора вместо памяти...
Вроде все - вынесение за пределы цикла тут не применяется...
NEW 12.11.07 12:55
in Antwort Murr 10.11.07 14:44
а как написать тогда, чтоб быт уверенным, что а будет инитиализированна три раза?
NEW 13.11.07 03:43
in Antwort YoMaYo 12.11.07 12:55
Ты бы написал на каком языке пишешь, телепатов здесь нет. Но если это С/С++, то можно использовать volatile - http://en.wikipedia.org/wiki/Volatile_variable
NEW 13.11.07 19:39
in Antwort YoMaYo 12.11.07 12:55, Zuletzt geändert 13.11.07 19:42 (Murr)
а как написать тогда, чтоб быт уверенным, что а будет инитиализированна три раза?
------
scorpi_ уже написал.
Он правда не спросил - А зачем надо присваивать три раза? Почему нужны именно эти значения? С точки зрения кода смысла в них нет.
Если проще - напиши на чем пишешь и какую задачу решаешь. Тогда можно будет что-то советовать...
------

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