реклама на сайте
подробности

 
 
> Инициализация глобальных переменных, глобальные переменные не инициализируются по умолчанию
worker1
сообщение Dec 6 2012, 15:07
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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); //ответ верный
)
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
demiurg_spb
сообщение Dec 6 2012, 16:26
Сообщение #2


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



А если у переменной global_var тип char заменить на тип int?
или с чаром, но
Код
printf("%hhd", global_var);

Ааааа! У вас ошибка! Нужно %d в кавычки брать.
Код
printf("global_var=%d\n", global_var);


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
worker1
сообщение Dec 6 2012, 17:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 10-07-06
Пользователь №: 18 707



Цитата(demiurg_spb @ Dec 6 2012, 20:26) *
Ааааа! У вас ошибка! Нужно %d в кавычки брать.

Про ковычки я забыл. Но вопрос не в них, а в способе инициализации переменной. Или я опцию не добавил, или компилятор у меня особенный. На другом компиляторе yagarto и mingw проблем таких не заметил.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 6 2012, 18:32
Сообщение #4


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Вы сюда ваш исходник скопипастите, а не по-памяти набитый текст, тогда глядишь что-нибудь и прояснится.
Для компиляции такого простого кейса никаких опций компилятору не нужно.
Просто достаточно в консольке: gcc main.c и всё!
Ну а т.к. у вас arm-none-eabi, то тут требуется стартап код, который и проинитит ваши глобальные переменные.
По всей видимости у вас он отсутствует.
Выкладывайте ваш makefile.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 18:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01388 секунд с 7
ELECTRONIX ©2004-2016