-
- volatile поставь. LightElf(103 знак., 24.07.2020 18:30)
- Разве можно объявлять const без инициализации? Какой
компилятор-придурок это пропустит? VVB(72 знак., 24.07.2020 16:54)
- Не инициализированные переменные инициализируются нулями. Если в C
переменная может быть внешней (extern) и быть инициализорована в
другом модуле. При раздельной компиляции невозможно сказать, при
компиляции одного модуля, ошибка это или нет. В C++ подразумевается
неявный static, но опять же возможна инициализация по умолчанию
(default constructor). - fk0(24.07.2020 16:59)
- g++: VVB(154 знак., 24.07.2020 17:07)
- --> - fk0(24.07.2020 17:08, ссылка)
- Сохранил твой код в файл, компилирую на ПК: VVB(1664 знак., 24.07.2020 17:14)
- Расслабтесь :-) Я привел код чисто схематично, не думал что вы все кинетесь его компилировать: - il-2(24.07.2020 17:27, ссылка)
- Опции компилятора скопируй вместе с кодом... - fk0(24.07.2020 17:21)
- Виновата -fpermissive VVB(150 знак., 24.07.2020 17:27)
- Сохранил твой код в файл, компилирую на ПК: VVB(1664 знак., 24.07.2020 17:14)
- Интересная расцветка кода. С чего бы это? - VVB(24.07.2020 17:07)
- --> - fk0(24.07.2020 17:08, ссылка)
- extern нет в топике. Факт: я привёл выхлоп компилятора armcc при
компиляции c++ файла, исходя из строчки в топике. Не компилируется. - VVB(24.07.2020 17:01)
- extern там есть - он в заголовочном файле, который включается и в
модуле: il-2(201 знак., 24.07.2020 17:12)
- Ошибка. VVB(363 знак., 24.07.2020 17:20)
- Блин!!! Посыпаюсь пеплом: il-2(94 знак., 24.07.2020 17:23)
- Об чём и речь - VVB(24.07.2020 17:30)
- Блин!!! Посыпаюсь пеплом: il-2(94 знак., 24.07.2020 17:23)
- Ошибка. VVB(363 знак., 24.07.2020 17:20)
- extern там есть - он в заголовочном файле, который включается и в
модуле: il-2(201 знак., 24.07.2020 17:12)
- g++: VVB(154 знак., 24.07.2020 17:07)
- Не инициализированные переменные инициализируются нулями. Если в C
переменная может быть внешней (extern) и быть инициализорована в
другом модуле. При раздельной компиляции невозможно сказать, при
компиляции одного модуля, ошибка это или нет. В C++ подразумевается
неявный static, но опять же возможна инициализация по умолчанию
(default constructor). - fk0(24.07.2020 16:59)
- Просто убери const. - RxTx(24.07.2020 15:53)
- Ага... только смысл жизни теряется :-) Я по другому сделал: il-2(80 знак., 24.07.2020 17:02)
- В C++ потому, что const -- это автоматом и static, значит значение
SettingsVar известно в момент компиляции модуля и оно не 0xAAAA...
В C (где const не static и может где-то ещё инициализироваться, в
другом модуле) аналогичного можно добиться при omniscient или LTO
оптимизации -- не уверен. Может помочь volatile. - fk0(24.07.2020 15:21)
- Да, я не написал что модуль .cpp. Однако, как мне кажется в .c
будетможет быть то-же самое. SettingsVar - глобальная переменная. il-2(193 знак., 24.07.2020 16:58)- В .cpp файле переменная SettingsVar -- локальная для модуля
(static) и другие модули при всё желании её могут не увидеть
(символ в глобальную таблицу имён не попадёт). - fk0(24.07.2020 17:01)
- Вот, еще докинул инфы: - il-2(24.07.2020 17:15, ссылка)
- В .cpp файле переменная SettingsVar -- локальная для модуля
(static) и другие модули при всё желании её могут не увидеть
(символ в глобальную таблицу имён не попадёт). - fk0(24.07.2020 17:01)
- Да, я не написал что модуль .cpp. Однако, как мне кажется в .c