Difference between preprocessor directives #if and

2020-05-14 13:32发布

What is the difference (if any) between the two following preprocessor control statements.

#if

and

#ifdef

2条回答
老娘就宠你
2楼-- · 2020-05-14 13:55
#ifdef FOO

is a shortcut for:

#if defined(FOO)

#if can also be used for other tests or for more complex preprocessor conditions.

#if defined(FOO) || defined(BAR)
查看更多
疯言疯语
3楼-- · 2020-05-14 14:01

You can demonstrate the difference by doing:

#define FOO 0
#if FOO
  // won't compile this
#endif
#ifdef FOO
  // will compile this
#endif

#if checks for the value of the symbol, while #ifdef checks the existence of the symbol (regardless of its value).

查看更多
登录 后发表回答