2

我不熟悉这种类型的定义,需要关于第 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

谢谢!

4

2 回答 2

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]) {

}
于 2013-05-07T12:39:40.887 回答
1

C 预处理器简单地将宏调用替换为宏的主体。

在这种情况下,如果您有一个带有如下语句的 shell 脚本:

if [ something AND_CPU_0 ]; then ... fi

它将被简单地替换为

if [ something && [ $(get_id cpu) -ne 0] ]; then ... fi
于 2013-05-07T12:42:12.140 回答