C / C ++宏定义,用于选择应运行的程序

时间:2017-06-22 01:12:30

标签: c++ c macros

假设我有这个程序:

int main(){
    printf("program 1\n");
}

int main(){
    printf("program 2\n");
}

如何定义一个可以帮助我选择运行哪个主电源的宏?

理想情况下,我想将某些内容定义为1(或2),并打印“程序1”(或“程序2”)。

2 个答案:

答案 0 :(得分:2)

#if个功能周围使用main()

#if WHICHMAIN == 1
int main(){
    printf("program 1\n");
}
#endif

#if WHICHMAIN == 2
int main(){
    printf("program 2\n");
}
#endif

然后,您可以使用-DWHICHMAIN=1-DWHICHMAIN=2编译该程序,以指定宏的值。

答案 1 :(得分:2)

这就是我通常所做的:我创建一个名为my_config.h的配置文件,并在其中定义宏,例如#define TEST_MODE

代码是这样的:

#include "my_config.h"
int main() {
    #ifdef TEST_MODE
    return test_main();
    #else
    return real_main();
    #endif
}