这些空的if块有什么意义?

Asa*_*vid 1 c gcc

我正在阅读http-parser的源代码,并遇到了一些带有空块的if语句.这是一个例子(来源)

int
dontcall_message_begin_cb (http_parser *p)
{
  if (p) { } // gcc
  fprintf(stderr, "\n\n*** on_message_begin() called on paused parser ***\n\n");
  abort();
}
Run Code Online (Sandbox Code Playgroud)

评论只提到'gcc'(对我来说)不是很有帮助.这些有什么意义?

nne*_*neo 5

我的猜测是有人试图压制"未使用的参数"警告.

执行此操作的规范方法是(void)p;,但我猜测代码的作者不知道这一点.