ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
27 ноября
96961 Топик полностью
ReAl (14.08.2007 21:34, просмотров: 202) ответил Gamma SPb на ну да, GCC и RealView - очень специфические компиляторы =)
Будем продолжать тестирование. Только, пожалуйста, список компиляторов, признанных "неспецифическими" - в студию. А то так все окажутся "специфическими". Ну кроме, может быть, одного. n.h <c>const int n = 5;</c> mm.h <c>void mm();</c> m.cpp <c>#include <iostream> #include "n.h" #include "mm.h" const int *p = &n; // чтобы обязательно сгенерировал "тело" константного объекта n int main() { cout << "from main " << n << "\n"; mm(); return 0; }</c> mm.cpp <c>#include <iostream> #include "n.h" #include "mm.h" const int *p1 = &n; void mm() { cout << "from mm " << n << "\n"; }</c> Borland bcc32 версии 5.02 от 1997 года это дело собирает в exe без никаких замечаний, в попрошенных ключиком -S асмовых файлах в каждом присутствует <asm> align 4 _n label dword dd 5</asm>и просто-напросто эти _n не объявлены public "объекты, объявленные const и не объявленные в явной форме extern имеют внутреннее связывание".