|
|
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Ну что гадость Builder 5-й мне делает? файл Unit1.h: Код: plaintext 1. 2. 3. 4. 5. файл Unit2.h: Код: plaintext 1. 2. 3. Все, приехали - переменная AAA defined in both module... Может, препроцессор где-то хитрой галочкой отключен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 13:43 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Например, есть Код: plaintext 1. 2. 3. 4. После препроцессирования мы получаем две единицы трансляции (файл полученный после обработки препроцессором) следующего содержания: module 1.cpp: Код: plaintext Код: plaintext Так в чем не прав компилятор? Может ты не совсем понимаешь как работает препроцессор? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 14:12 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
peremennuiu obievi v faile: Unit2.cpp a v Unit2.h obievi ee external, togda vse srabotaet. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 15:38 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Так не фиг по два раза объявлять переменные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 17:28 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
2 MasterZiv А почему два, а не три или не четыре - ведь Lepsty не привел самое интересное, а именно cpp модули включающие Util2.h. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 17:35 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
пиши static int AAA; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 17:57 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
LepstyВсе, приехали - переменная AAA defined in both module... Может, препроцессор где-то хитрой галочкой отключен? file Unit2.h Код: plaintext 1. 2. 3. 4. file Unit2.c / Unit2.cpp Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2004, 19:09 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Спасибо. Все понятно. А вообще никто не наталкивался на какую-нибудь статейку с подробным рассмотрением подобных ситуаций и вообще того, как правильно размещать объявления, включать друг в друга файлы и т.д.? А то у меня в проекте накопилось 7 штук файлов и то, что я здесь описано - это уже окончание моей битвы - то, что не удалось разрешить самостоятельно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 04:23 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Насчет окончания битвы - это было сильно сказано :-( Есть, например, такая проблема: не получается inline функцию разделить на объявление и определение в разных файлах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 06:20 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Lepsty... не получается inline функцию разделить на объявление и определение в разных файлах. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 06:37 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Так если бы игнорировал, а то он ошибку выдает - дескать, undefined symbol ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 06:47 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Дык, они и описываются и определяются в одном месте: в этом -то и весь фокус! Например: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 10:06 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Да, как говорится, Борис ты не прав! Можно таки объявлять, а потом описывать в другом месте. Однако только в объявлении необходимо указывать inline, а в описании не надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 18:53 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
LepstyСпасибо. Все понятно. А вообще никто не наталкивался на какую-нибудь статейку с подробным рассмотрением подобных ситуаций и вообще того, как правильно размещать объявления, включать друг в друга файлы и т.д.? А то у меня в проекте накопилось 7 штук файлов и то, что я здесь описано - это уже окончание моей битвы - то, что не удалось разрешить самостоятельно Эти тваи случаи в букварях по С проходят, панимаишь ? "Мама мыла раму" помнишь ? Вот там же, рядом, написана про это. Ни адин здравамыслящий чилавег на эту тему статей писать ни будет - ани никаму ниинтересны. Вазьми любой учебниг по С (лучша именно па С, в С++ могут пра такую мелач и забыть написать) и - читай, читай, читай... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 20:10 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Lepsty Есть, например, такая проблема: не получается inline функцию разделить на объявление и определение в разных файлах. И не получится. INLINE должна быть доступна в виде своего тела компилятору при компилировании всех модулей, использующих эту функцию. Это согласно стандарту. Т.е. перевожу - все определения inline-функций должны быть включены в общий заголовок, как правило, это делают в том же заголовке, где помещено объявление этой функции, или в отдельный заголовок, включающийся из него. То же самое можно сказать и про шаблонные функции, хотя там немного все сложнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 20:15 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
Ни прав ты , Alex_VC, это понятно, я просто пакажу как ище можна [src c++] inline int func(int n); // ... int func(int n) { return n*10 } [/quot] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.11.2004, 20:18 |
|
||
|
#ifndef #define #endif - не желают работать
|
|||
|---|---|---|---|
|
#18+
MasterZivНи прав ты , Alex_VC, это понятно, я просто пакажу как ище можна [src c++] inline int func(int n); // ... int func(int n) { return n*10 } Дык, я уже поправился, кажется (см. выше) Век живи, век учись... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 10:18 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32766047&tid=2034159]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 381ms |

| 0 / 0 |
