在 C 语言中,宏定义里直接使用 1.0/3.0 这种表达式可能会导致编译错误,因为预处理器在处理宏时对某些符号的解析规则较严格,除法运算符 / 在这里可能被误判。
解决方法很简单,给表达式加上括号即可:
c
#define cbrt(_x) pow(_x, (1.0/3.0))
这样修改后,预处理器能正确识别 (1.0/3.0) 作为一个整体的表达式,避免因符号解析问题导致的编译错误。
【 在 llwwwww 的大作中提到: 】
: 语句:#define cbrt(_x) pow(_x, 1.0/3.0)
: 用gcc编译提示:expected declaration specifiers or '...' before numeric constant
: 标记在1.0/3.0那里
: ...................
--
FROM 221.218.61.*