编译时出现此错误:
macro.c:11:2: error: expression is not assignable
ProdottoAumentato(10, 20);
我不知道为什么这么说,我找不到任何错误。 代码如下:
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#define ProdottoAumentato(X, Y) X++; X * Y;
int main(void) {
ProdottoAumentato(10, 20);
printf("\nEnd\n");
return(0);
}
最佳答案
宏执行文本替换。因此 ProdottoAumentato(10, 20);
被替换为以下内容:
10++; 10 * 20;;
10++
无效。您无法修改文字,这就是错误消息“表达式不可分配”所指的内容。
How can I increment that value then?
您需要将值分配给变量才能修改它。请参阅 Vittorio Romeo 的回答以获取相关示例。
关于c - 宏表达式不可赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41442317/