c++ - DEFINE() 宏在表达式中的使用

标签 c++ c-preprocessor

所以我定义了..

#define RADIAN(x) x*3.14159265f/180.0f

然后像这样使用它:

RADIAN(theta-90)

我的程序不断给我错误的结果,我花了几个小时才意识到上面的语句和下面的语句之间存在巨大差异。

RADIAN((theta-90))

现在我的程序运行得很好。为什么第一个陈述不正确?

最佳答案

#define 只进行文本替换,所以 RADIAN(theta-90) 实际上是 theta-90*3.14159265f/180.0f,显然不是你的意思。尝试

#define RADIAN(x) ((x)*3.14159265f/180.0f)

相反。

关于c++ - DEFINE() 宏在表达式中的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5726562/

相关文章:

c++ - CommonAPI CMake 错误

c++ - 如何停止 cmake 将 wxjpeg.lib 添加到 visual studio 项目?

c++ - 重载 C 宏

计算 C 中静态数组初始化的元素数量

gcc - 使用编译器选项覆盖宏

在 Cortex-M3 上使用带有预制地址的位带宏时出现问题

c++ - 使用 Qt 和 Boost 为应用程序编译 CppUTest 测试时的奇怪行为

c++ - 如何将基于 Borland 2007 构建的 C++ 代码迁移/转换到 Visual Studio 2010

c++ - 无法从非常简单的函数中获得正确答案

c++ - 字符串化运算符失败