【问题标题】:Using a macro inside a loop condition在循环条件中使用宏
【发布时间】:2011-03-06 16:03:52
【问题描述】:

我正在使用 C++ 编程,我将一个变量定义为宏,我想使用该宏从函数中返回一个值。

由于某种原因,编译器说我有语法错误。我正在使用 Linux。

#include <iostream>
#define FACTOR 10;
int dosomthing(){
    return (FACTOR/2);
}

对可能出现的问题有什么建议吗?

【问题讨论】:

  • 编译器到底说了什么?
  • 不要在#define FACTOR 10;末尾加分号
  • 确实没有理由在 99% 的情况下在 C++ 中使用宏。他们是4x evil

标签: c++ function syntax macros


【解决方案1】:

宏被替换。所以最后你会得到

return (10;/2);

只需从您的宏中删除 ; 就可以了。

【讨论】:

    【解决方案2】:

    static const int FACTOR = 10; 是在 C++ 中执行此操作的更好方法。

    【讨论】:

    • 但是更改名称,使其不是全部大写。否则它可能会被宏打乱:-)
    猜你喜欢
    • 2022-11-29
    • 1970-01-01
    • 2020-12-11
    • 1970-01-01
    • 2012-08-25
    • 2015-08-21
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    相关资源
    最近更新 更多