C: error C2105: '++' 需要左值

标签 c compiler-errors macros

Windows,MSVS 2010。

我无法理解为什么会产生编译错误:

#define INC(X) X++

int main() {

    int X; 
    printf("%d", INC(X++)); 

    return 0; 

}

错误:

Error 1 error C2105: '++' needs l-value testing.cpp 19 1 testing

最佳答案

扩展宏的结果将是X++++

后缀++ 运算符增加变量的值并返回增加前的值。它不返回左值(变量)——只是一个值。您不能将 ++ 应用于它,就像您不能调用 3++ 一样。

关于C: error C2105: '++' 需要左值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27581059/

相关文章:

compiler-errors - 限制表达式中的术语数?

ios - 椰子足 : Library Not found

clojure - Clojure 宏中的文本替换功能,如 C 的#define

macros - 在intellij中创建宏

c - 是否有任何 C 函数可以为给定的输入值返回常量变量名称?

C 中的 Java 实现(可能特定于平台)

c - 如何将程序中使用的所有共享库更改为 Windows 中的静态库?

java - 类不是抽象的并且不重写抽象方法错误

c - Linux system() 和信号处理程序导致竞争条件?

const char 变量为什么我修改它就可以工作?