Clang 给出令人困惑的错误消息 "expected value in expression"

Clang gives confusing error message "expected value in expression"

我从 Clang 10 收到以下错误消息:

error: expected value in expression
#if FOOBAR
          ^
1 error generated.

没有更多信息。这可能是什么原因造成的?

What could be the cause for this?

当宏定义为空时

#define FOOBAR

然后

#if FOOBAR

扩展为:

#if

并且编译器打印错误 - if 需要表达式 #if something-here.