【问题标题】: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你的答案添加一些解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 2015-03-28
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多