2015-12-09 3 views
1

У меня есть два файла заголовка делает то же самое определяют с разными значениями:Препроцессирование найти макс между #define

file1.h: 
      #define NUM_OF_TREES 10 
file2.h: 
      #define NUM_OF_TREES 20 

В другом файле я хочу, чтобы определить limits.h #define MAX_NUM_OF_TREES как можно Поручаю максимум в статическом времени (предварительная обработка) с использованием макросов?

ответ

0

file1.h:

#define NUM_OF_TREES 10 
    typedef unsigned char NUM1[NUM_OF_TREES]; 

file2.h:

#define NUM_OF_TREES 20 
    typedef unsigned char NUM2[NUM_OF_TREES]; 

file3.c:

typedef union { 
     NUM1; 
     NUM2; 
    } FOR_MAX_SIZE; 

#define MAX_NUM_OF_TREES sizeof (FOR_MAX_SIZE); 
+0

Хотя этот код может ответить на вопрос, обеспечивая дополнительный контекст относительно _why_ и/или _how_ он отвечает вопрос значительно улучшит его долгосрочный значение. Пожалуйста, отредактируйте свой ответ, чтобы добавить какое-то объяснение. –

Смежные вопросы