我不熟悉这种类型的定义,需要帮助第5行做什么?它是否重新定义了AND_CPU_0?
#ifdef CONDITION_1
#define AND_CPU_0
#define AND_CPU_1
#ifdef CONDITION_2
#define AND_CPU_0 && [ $(get_id cpu) -ne 0]
#endif
#ifdef CONDITION_3
#define AND_CPU_1 && [ $(get_id cpu) -ne 1]
#endif
#endif
谢谢!
答案 0 :(得分:2)
#define AND_CPU_0 && [ $(get_id cpu) -ne 0]
只是将AND_CPU_0
定义为&& [ $(get_id cpu) -ne 0]
。
例如,您可以在源代码中
if (enable == true AND_CPU_0) {
}
相当于
if (enable == true && [ $(get_id cpu) -ne 0]) {
}
答案 1 :(得分:1)
C预处理器只是将宏调用替换为宏的主体。
在这种情况下,如果你有一个带有如下语句的shell脚本:
if [ something AND_CPU_0 ]; then ... fi
它将简单地替换为
if [ something && [ $(get_id cpu) -ne 0] ]; then ... fi