使用C定义

问题描述 投票:1回答:2

我对c代码中的定义有疑问,如下所示。

#define DESC(x) 1

#if DESC("abc cdef")
.... some implementation or declaration
#endif

宏DESC(“abc cdef”)究竟是什么意思?它代表子模块吗?这是真的,我在哪里可以参考有关它的信息?

感谢您仔细阅读此问题。

c
2个回答
3
投票

DESC(x)是一个类似函数的预处理器宏。在您的情况下,它忽略其输入并始终用整数文字1替换它。

我不确定为什么会这样使用它,但我怀疑作者想要:

  1. 向代码段添加描述。
  2. 要清楚地界定这些描述适用的部分(通过#if ... #endif)。

(大多数人会对#1使用评论,但有时评论#2还不清楚。)


1
投票

这是一个function-like macro,它接受x作为参数并返回1

© www.soinside.com 2019 - 2024. All rights reserved.