gpt4 book ai didi

c - #if 定义的预处理器运算符中的括号是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 15:14:57 24 4
gpt4 key购买 nike

(我正在开发一个 SDK,其中我引用了特定 SDK 的代码,但我无法追踪程序的流程。)

什么是

#if defined (AR7x00)

是什么意思?具体来说,在这样的预处理器运算符中括号的目的是什么?

最佳答案

这三个预处理器指令:

#if defined (AR7x00)

#if defined AR7x00

#ifdef AR7x00

所有的意思完全相同:只有当前定义了宏 AR7x00 时才会处理以下代码。

#ifdef ... 指令只是#if defined ... 的一种方便的替代方法。还有一个 #ifndef ... 指令; #ifndef FOO 等同于 #if !定义 FOO.

至于括号,defined 运算符的语法允许使用标识符或括号中的标识符,两者的含义没有区别。我不完全确定为什么括号是可选的;我怀疑这只是历史原因。 (1978 年第一版 K&R 中的语言引用没有提到 defined 运算符。第二版显示了两种形式,有括号和没有括号。)

严格来说,这些不是您在普通表达式中看到的那种分组括号;它们是 defined 运算符语法的一部分,只能在预处理器 #if 指令中使用。特别是,这个:

#if defined ((AR7x00))

是语法错误。

关于c - #if 定义的预处理器运算符中的括号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21375625/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com