Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Когда можно использовать препроцессор в MS VC++ 6.5?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
Николай Иванович Приходько
Когда можно использовать препроцессор в 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]
Николай Иванович Приходько
И ещё.

Получается, что НЕ включать в исходник стандартные библиотеки нельзя? sad.gif

Даже если мне не нужны средства стандартной библиотеки?

Почему при компиляции проги

Код
        void main ( void )
        {
            int i;
            // -------------------------------
            i = 1;
            // -------------------------------
            return;
        }


Компилятор выдаёт ошибку: fatal error C1010: unexpected end of file while looking for precompiled header directive
makc
Отключите использование precomiled headers и включать stdafx.h будет не нужно.
Николай Иванович Приходько
Цитата(makc @ Oct 12 2008, 17:07) *
Отключите использование precomiled headers и включать stdafx.h будет не нужно.

А где?
Чёта не могу найти такую галку crying.gif
Edmundo
Цитата(Николай Иванович Приходько @ Oct 12 2008, 17:20) *
А где?
Чёта не могу найти такую галку crying.gif

Project -> Settings -> C/C++ -> Category: Precompiled Headers
Николай Иванович Приходько
Цитата(Edmundo @ Oct 12 2008, 18:35) *
Project -> Settings -> C/C++ -> Category: Precompiled Headers

Спасибо. Нашёл.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.