【问题标题】:Preprocessing find max between #define预处理找到#define之间的最大值
【发布时间】:2015-12-09 09:03:27
【问题描述】:
我有两个头文件使用不同的值进行相同的定义:
file1.h:
#define NUM_OF_TREES 10
file2.h:
#define NUM_OF_TREES 20
在我要定义的另一个文件中
限制.h
#define MAX_NUM_OF_TREES
如何使用宏分配静态时间(预处理)的最大值?
【问题讨论】:
标签:
macros
max
c-preprocessor
x-macros
【解决方案1】:
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);
【讨论】:
-
虽然此代码可能会回答问题,但提供有关 why 和/或 如何 回答问题的额外上下文将显着改善其长期价值。请edit你的答案添加一些解释。