Вниз
Скачать: CL | DM;

Дефайны. Никак не соображу с чем их едят ?   Найти похожие ветки 

← →
Riply ©   (2008-07-10 08:59) [0]

Здравствуйте !
Вот захотелось мне представить как дефайны следующие две конструкции:

#if defined (_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#else
#pragma runonce
#endif

#ifdef _MSC_VER
#include "Include\_NtStatus.h"
#else
#include "_NtStatus.h"
#endif


С первой, вроде, что-то получается.
#define PRAGMA_RUNONCE ( #if defined (_MSC_VER)) && (_MSC_VER >= 1020) once #else runonce #endif )
Ну и вызов:
#pragma PRAGMA_RUNONCE
Во всяком случае C++Builder кушает и не пискает :)
А вот VS напрочь отказывается :(

Помогите, пожалуйста, разобраться.


← →
Правильный^Вася   (2008-07-10 09:31) [1]


> #if defined

и

> #ifdef

может это все-таки разные конструкции?


← →
clickmaker ©   (2008-07-10 09:32) [2]

> А вот VS напрочь отказывается

что говорит?


← →
Riply ©   (2008-07-10 09:46) [3]

> [1] Правильный^Вася   (10.07.08 09:31)
> может это все-таки разные конструкции?

Sorry. Копи/пайст подвел.

>  [2] clickmaker ©   (10.07.08 09:32)
> что говорит?

А по разному (я много вариантов перебрала, сейчас нет возможности открыть VS):
то недопустимый символ #, то ему не нравиться что в одной строке #ifdef и #else,
говорит надо на новую строчку перенести.
После переноса, кричит, что пропущен идентификатор и т.д. и т.п.


← →
clickmaker ©   (2008-07-10 10:06) [4]

> После переноса, кричит, что пропущен идентификатор

\ не помогает в конце строки?


← →
Правильный^Вася   (2008-07-10 10:08) [5]

дошло
ты хочешь дефайны в дефайны затулить?


← →
Riply ©   (2008-07-10 10:35) [6]

>  [4] clickmaker ©   (10.07.08 10:06)
\ не помогает в конце строки?

Неа :(

> [5] Правильный^Вася   (10.07.08 10:08)
> дошло
> ты хочешь дефайны в дефайны затулить?

Ага. А это запрещено ?


← →
Игорь Шевченко ©   (2008-07-10 10:46) [7]


> Помогите, пожалуйста, разобраться.


А документацию по синтаксису препроцессора для конкретного компилятора ты уже прочитала ?


← →
ketmar ©   (2008-07-10 13:19) [8]

>[3] Riply © (2008-07-10 09:46:00)
>то ему не нравиться что в одной строке #ifdef и #else,

и справедливо не нравится. иди, читай про препроцессоры.

---
Understanding is not required. Only obedience.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.008 c
2-1216987008
Delphist
2008-07-25 15:56
2008.08.31
Генератор


2-1216735433
mc2
2008-07-22 18:03
2008.08.31
TTreeView скопировать в другой


3-1204266576
Barsky
2008-02-29 09:29
2008.08.31
Правильный запрос на FireBird SQL


2-1216785438
Zergost
2008-07-23 07:57
2008.08.31
Фильтрация по полям?


15-1215799808
Поросенок Винни-Пух
2008-07-11 22:10
2008.08.31
Непонятно с Дефо




   Наверх