比方说,我有这样的程序:C/C++的宏定义选择应该运行什么程序
int main(){
printf("program 1\n");
}
int main(){
printf("program 2\n");
}
我如何定义一个宏,会帮我选择哪一个电源的运行?
理想情况下,我想定义一些东西为1(或2),应该打印“程序1”(或“程序2”)。
比方说,我有这样的程序:C/C++的宏定义选择应该运行什么程序
int main(){
printf("program 1\n");
}
int main(){
printf("program 2\n");
}
我如何定义一个宏,会帮我选择哪一个电源的运行?
理想情况下,我想定义一些东西为1(或2),应该打印“程序1”(或“程序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
指定宏的值。
这就是我通常所做的:我创建一个名为my_config.h
的配置文件,并在其中定义宏,例如#define TEST_MODE
。
和代码是这样的:
#include "my_config.h"
int main() {
#ifdef TEST_MODE
return test_main();
#else
return real_main();
#endif
}
这确实是一个不错的诀窍 – Daniel
这是不合法的代码,据我所知。有2条主线几乎肯定是一个错误。你不能只传入一个参数来指定程序的哪一部分运行? – Carcigenicate
你想用这个做什么?有2个主要是一个错误,应该相当于有2个不同的程序 – Amadeus
我可以,但我想知道这是否可能。到目前为止,有一些有趣的宏观技巧。我只是这样做来测试一些代码应该做同样的事情 – Daniel