Цитата(sidy @ Oct 29 2012, 16:25)

Здравствуйте, уважаемые форумчане. В проекте, созданном в Keil MDK-ARM 4.54 есть три файла main.c. pwm.h и pwm.c. В файле pwm.h объявленна переменная i.
Как объявлена?
Код
int i;
или
Код
extern int i;
?
Второй вариант допустим.
Цитата(sidy @ Oct 29 2012, 16:25)

При добавлении в main.c и pwm.c строки #include "pwm.h" возникает ошибка: Proj.axf: Error: L6200E: Symbol i multiply defined (by main.o and pwm.o).
Так и должно быть: если "pwm.h" инклудится в оба Си-шных файла, то переменная i получается объявленной в обеих файлах. И получаете ошибку.
Цитата(sidy @ Oct 29 2012, 16:25)

В опциях проекта C/C++ в строке Misc Controls задано --С99.
С99 здесь нипричом.
Цитата(sidy @ Oct 29 2012, 16:25)

Как я понимаю в с99 можно объявлять переменную в нескольких местах, а на этапе компиляции переменная заменится одной.
Это как? Приведите пример...
Цитата(sidy @ Oct 29 2012, 16:25)

Подскажите пожалуйста, что я делаю не так?
Объявляйте переменные в с-файлах:
pwm.c
Код
int SomeVar;
pwm.h
Код
#ifndef _PWM_H_
#define _PWM_H_
extern int SomeVar;
#endif