Форум TeamX
   Home   Members  
Pages: [1] |   Go Down
 
Author Topic: Препроцессор #ifndef и #endif  (Read 1537 times)
Jordan
Пользователь
Posts: 416

476228895
Препроцессор #ifndef и #endif
« on: 04 December 2008, 09:17:48 »

У меня вот вопрос

Содержание ARADESH.ssl

#define DIRECTION 9999

#include "Encounter_Small_Scorpion.h"
SetEnc(TYPE, SCRIPT, ITEM, MONEY, TILE, DIRECTION, DISTANCE, TARGET);


#include "Encounter_Small_Scorpion.h"
SetEnc(TYPE, SCRIPT, ITEM, MONEY, TILE, DIRECTION, DISTANCE, TARGET);

Содержание Encounter_Small_Scorpion.h

#ifndef TYPE
#define TYPE        (PID_SMALL_RADSCORPION)
#endif

#ifndef SCRIPT
#define SCRIPT      (SCRIPT_ECSCORP)
#endif

#ifndef ITEM
#define ITEM        (0)
#endif

#ifndef MONEY
#define MONEY       (0)
#endif

#ifndef TILE
#define TILE        (tile_num(dude_obj))
#endif

#ifndef DIRECTION
#define DIRECTION   (rnd(0, 5))
#endif

#ifndef DISTANCE
#define DISTANCE    (dude_perception*2)
#endif

#ifndef COUNT
#define COUNT       (0)
#endif

#ifndef TARGET
#define TARGET      (dude_obj)
#endif

После препроцессора

# 1 "ARADESH.ssl"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "ARADESH.ssl"






# 1 "Encounter_Small_Scorpion.h" 1
# 8 "ARADESH.ssl" 2
SetEnc((PID_SMALL_RADSCORPION), (SCRIPT_ECSCORP), (0), (0), (tile_num(dude_obj)), 9999, (dude_perception*2), (dude_obj));


# 1 "Encounter_Small_Scorpion.h" 1
# 12 "ARADESH.ssl" 2
SetEnc((PID_SMALL_RADSCORPION), (SCRIPT_ECSCORP), (0), (0), (tile_num(dude_obj)), 9999, (dude_perception*2), (dude_obj));

А теперь вопрос, мне нужно что бы

#define DIRECTION 9999 если дефин определен тогда вставить это значение, это работает

#include "Encounter_Small_Scorpion.h"
SetEnc(TYPE, SCRIPT, ITEM, MONEY, TILE, DIRECTION, DISTANCE, TARGET);

а если не определен тогда взять значение из #include "Encounter_Small_Scorpion.h"
#include "Encounter_Small_Scorpion.h"
SetEnc(TYPE, SCRIPT, ITEM, MONEY, TILE, DIRECTION, DISTANCE, TARGET);

Как так сделать?

Здесь все работает
#define DIRECTION 9999
#include "Encounter_Small_Scorpion.h"
SetEnc(TYPE, SCRIPT, ITEM, MONEY, TILE, DIRECTION, DISTANCE, TARGET);

А вот здесь он заменяет на 9999, а мне нужно что бы он заменял из #include "Encounter_Small_Scorpion.h"

#include "Encounter_Small_Scorpion.h"
SetEnc(TYPE, SCRIPT, ITEM, MONEY, TILE, DIRECTION, DISTANCE, TARGET);
« Last Edit: 04 December 2008, 09:20:03 by Jordan »

Воспрянет Россия, из праха отцов
Расправятся крылья, миллионов сердец
Поднимут все головы и грудью вздохнут
И громка скажут, что пришли
Мы пришли, со столетней войны
Wasteland Ghost
Администратор
Posts: 869

Маленькое Злое Привидение


Re: Препроцессор #ifndef и #endif
« Reply #1 on: 04 December 2008, 09:38:00 »

Други, когда ж вы научитесь не растекаться мыслью на "стопиццот страниц", а? И использовать поиск? Не только по форуму, но и по сайту. Подмигивающий

http://teamx.ru/node/307, раздел 3: условная компиляция.
Pages: [1] |   Go Up