Когда можно использовать препроцессор в MS VC++ 6.5? Невозможно до включения стандартной библиотеки применить препроцессор. В чём причина?
Почему так компилируется (#include "stdafx.h" расположен раньше первой препроцессорной директивы #ifdef):
#include "stdafx.h"" // Включение библиотеки до использования препроцессора
#define Prog1 #ifdef Prog1 // Вывод текстового сообщения на экран в стиле C int main ( int argc , char *argv[] ) { printf ( "Hello World!\n" ) ; return 0 ; } #endif
а так нет (#include "stdafx.h" расположен в теле первой препроцессорной директивы #ifdef) (выдаётся ошибка: «fatal error C1020: unexpected #endif»):
#define Prog1 #ifdef Prog1 #include "stdafx.h" // Включение библиотеки в ветке условной компиляции
// Вывод текстового сообщения на экран в стиле C int main ( int argc , char *argv[] ) { printf ( "Hello World!\n" ) ; return 0 ; } #endif
[u]Т.е. получается что пока не включишь в исходник какую-нибудь из системных библиотек препроцессорные средства недоступны?[/u]