如何使用以下预处理器语句

时间:2015-05-14 13:18:46

标签: c macros c-preprocessor

#define IS_THIS_CORRECT(X) if(X){}

我在我的项目中定义了这个预处理器语句。我试图了解如何使用此功能。

3 个答案:

答案 0 :(得分:1)

#define IS_THIS_CORRECT(X) if(X){}

它可用于检查X(任何值)是否不为零或不是空字符串等。您可以执行以下操作

IS_THIS_CORRECT("Hello")
else puts("The string is empty");

为了更安全,你最好用另一对括号围住X

#define IS_THIS_CORRECT(X) if((X)){}

我建议您将此预处理器语句重命名为IT_IS_CORRECT或甚至IS_CORRECT,以提高可读性。

答案 1 :(得分:0)

正如目前所写,除了你只想根据X的值处理FALSE个案外,很少有有意义的使用它。

恕我直言,您可以将其重新编写为

#define IS_THIS_CORRECT(X) if(X)

然后,您可以像

一样使用它
 int p = 5;
 IS_THIS_CORRECT(X)
 {
      printf("yay !!!\n");
 }

答案 2 :(得分:0)

我在猜测,但这对我有用的唯一方法是它是否应该被用作

IS_THIS_CORRECT(foo) else { do_something(); }

但仍然很奇怪。