Группа: Участник
Сообщений: 34
Регистрация: 10-07-06
Пользователь №: 18 707
Может кто в курсе. Не инициализируется глобальная переменная в примере 1. В примере 2 всё хорошо. Но мне надо работающий пример 1. Версия компилятора: $ ./gcc -v Using built-in specs. Target: arm-none-eabi Configured with: ../configure --target=arm-none-eabi --prefix=/usr/local/cross-c ortex --enable-interwork --enable-multilib --enable-languages=c,c++ --with-newli b --without-headers --disable-shared --with-gnu-as --with-gnu-ld Thread model: single gcc version 4.4.3 (GCC)
Пример 1 сhar global_var=109; Void Main () { Printf (%d, global_var); //ответ неверный ) Пример 2 сhar global_var; Void Main () { global_var=109; Printf (%d, global_var); //ответ верный )
Группа: Участник
Сообщений: 34
Регистрация: 10-07-06
Пользователь №: 18 707
Цитата(demiurg_spb @ Dec 6 2012, 20:26)
Ааааа! У вас ошибка! Нужно %d в кавычки брать.
Про ковычки я забыл. Но вопрос не в них, а в способе инициализации переменной. Или я опцию не добавил, или компилятор у меня особенный. На другом компиляторе yagarto и mingw проблем таких не заметил.
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643
Вы сюда ваш исходник скопипастите, а не по-памяти набитый текст, тогда глядишь что-нибудь и прояснится. Для компиляции такого простого кейса никаких опций компилятору не нужно. Просто достаточно в консольке: gcc main.c и всё! Ну а т.к. у вас arm-none-eabi, то тут требуется стартап код, который и проинитит ваши глобальные переменные. По всей видимости у вас он отсутствует. Выкладывайте ваш makefile.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)