Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
а почему int i = i - i; ругается что i - неинициализирована ?
Отправлено
DASM
25 сентября 2009, г. 12:19
Составить ответ
|
Вернуться на конференцию.
Ответы
Дык эта. Оно берет неинициализированую переменную i, предупреждает тебя о возможном косяке и считает ее по умолчанию интом, затем вычитает и только затем натыкается на инициализацию.
-
Codavr
(25.09.2009, 16:13:22
93.81.90.129
,
пустое
)
Нет. Область видимости имени начинается сразу за декларатором. Инициализатор уже в ней. Так что это выражение использует еще неинициализированное значение только что определенной переменной.
-
Oldring
(25.09.2009, 16:28:1
91.76.59.206
,
пустое
)
Да. Это я палку перегнул.
-
Codavr
(25.09.2009, 16:31:13
93.81.90.129
,
пустое
)
вот считает "по умолчанию интом" - это вряд ли так
-
DASM
(25.09.2009, 16:17:58
203.185.50.220
,
пустое
)
Ну как же. Это еще керниганричи заповедовал.
-
Codavr
(25.09.2009, 16:20:5
93.81.90.129
,
пустое
)
попробуй напиши float i = i- i;
-
Codavr
(25.09.2009, 16:21:8
93.81.90.129
,
пустое
)
будет тот же warning
-
DASM
(25.09.2009, 16:26:48
203.185.50.220
,
пустое
)
Пардон погорячился.
-
Codavr
(25.09.2009, 16:31:59
93.81.90.129
,
пустое
)
:D
-
Oldring
(25.09.2009, 16:01:33
91.76.59.206
, 54 байт)
warning и есть
-
DASM
(25.09.2009, 16:05:49
203.185.50.220
,
пустое
)
микрочип С18 не ругаецца. int j = j - j; BUILD SUCCEEDED. Компилятор у тебя неправильный.
-
=L.A.=
(25.09.2009, 14:09:13
213.79.108.115
,
пустое
)
он то как раз правильный. И просто дает warning
-
DASM
(25.09.2009, 14:15:45
203.185.50.220
,
пустое
)
С18 варнингов не даёт, хотя уровень ошибок 0. ( даже мессаджи разрешены )
-
=L.A.=
(25.09.2009, 14:18:10
213.79.108.115
,
пустое
)
пока компиляторы не умеют делать символьные вычисления
-
argus98
(25.09.2009, 13:02:10
81.22.205.230
,
пустое
)
Потому, что компилятор это не человек и в тонкостях не разбирается. Он видит операцию с неинициализированной переменной и ругается.
-
F8
(25.09.2009, 12:33:7
192.168.0.18,193.254.233.230
,
пустое
)
чем человек отличается от компилятора, кроме желания попить пива и свалить поспать побыстрее в тяпницу?
-
DASM
(25.09.2009, 12:34:58
203.185.50.220
,
пустое
)
Понимает что i-i == 0 независимо от i.
-
F8
(25.09.2009, 12:41:16
192.168.0.18,193.254.233.230
,
пустое
)
Компилятор разбирает строку с конца. "i-i == 0" утверждение не верное. Если "i" строка, структура, union? В момент разбора тип "i" не определен.
-
misyachniy
(25.09.2009, 13:29:24
194.187.111.110
,
пустое
)
Речь шла о неинициализированной переменной, а не о неопределенной.
-
F8
(25.09.2009, 13:45:1
192.168.0.18,193.254.233.230
,
пустое
)
Разработчики компилятораа могли и не знать, что DASM так напишет :-)
-
misyachniy
(25.09.2009, 14:38:6
194.187.111.110
,
пустое
)
for (int i = 0; i < 100; i++) - тут тоже с конца и тоже неопределен ?
-
DASM
(25.09.2009, 13:31:30
203.185.50.220
,
пустое
)
Не слушай вредные советы. Тип в момент разбора выражения инициализации уже определен. Не определено значение переменной, так как инициализатор еще не вычислен.
-
Oldring
(25.09.2009, 16:41:59
91.76.59.206
,
пустое
)
меня вот что беспокоит. почему низзя typedef enum{la,bla} MY_ENUM; MY_ENUM e = la; e++;
-
DASM
(25.09.2009, 16:45:1
203.185.50.220
,
пустое
)
Например потому что постинкреинт допустимо применять к перечислениям только в голых сях, но не в плюсах.
-
Oldring
(25.09.2009, 19:16:47
91.76.59.206
,
пустое
)
Разбор с конца, Но не все компиляторы поддерживают такую конструкцию.
-
misyachniy
(25.09.2009, 14:33:14
194.187.111.110
,
пустое
)
эта тропа ведет к Доктуру....)
-
basilmak
(25.09.2009, 12:37:34
82.142.173.231
,
пустое
)
пивная или компиляторная ?
-
DASM
(25.09.2009, 12:38:15
203.185.50.220
,
пустое
)
пивная - к доктуру, компиляторная - к Доктуру...
-
basilmak
(25.09.2009, 12:41:48
82.142.173.231
,
пустое
)
Ты сурёзно ? :)
-
miv
(25.09.2009, 12:24:39
192.168.7.28,84.52.111.234
,
пустое
)
угу. она же нолем стать должна
-
DASM
(25.09.2009, 12:25:19
203.185.50.220
,
пустое
)
Дык компил не справа сначала разбирает ??
-
miv
(25.09.2009, 12:26:23
192.168.7.28,84.52.111.234
,
пустое
)
какая разница ? все равно оно нулем должно стать
-
DASM
(25.09.2009, 12:33:32
203.185.50.220
,
пустое
)
Ага. Если unsigned.
-
VasilyS
(25.09.2009, 12:26:10
80.92.96.25
,
пустое
)
а если signed ?
-
DASM
(25.09.2009, 12:32:38
203.185.50.220
,
пустое
)
С signedом тоже, но компилятора можно простить за стрём.
-
VasilyS
(25.09.2009, 12:42:33
80.92.96.25
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 13:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru