ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
18 июля
618594
avr495 (09.09.2015 16:31, просмотров: 12537)
Почему компилятор gcc (тестил и для AVR и для PC - MinGW) допускает разные типы в определении и объявлении для разделяемых глобальных переменных (extern)? в хедере пишу extern char x; в исходнике пишу long long x; прокатывает. почему? должен же ругаться на разные типы. Практический пример: файл main.c: #include "globals.h" int main() { while (1) { x = y; } } файл other_source.c: #include "globals.h" файл globals.h: #ifndef GLOBALS_H_ #define GLOBALS_H_ extern char x; extern char y; #endif /* GLOBALS_H_ */ файл globals.c: unsigned char x; unsigned long long y;