我想打印一個字符串「X」的使用宏觀倍數字與下面的代碼參數: -左值
1 #include<string.h>
2 #include<stdio.h>
3 #define print(x,c) while(x>0)\
4 {\
5 puts(c);\
6 printf("\n");\
7 --x;\
8 }
9
10 int main()
11 {
12 char c[20];
13 strcpy(c,"Hallelujah");
14 print(5,c);
15 }
但是在編譯時,我得到以下錯誤: -
macro2.c: In function ‘main’:
macro2.c:7:2: error: lvalue required as decrement operand
--x;\
^
macro2.c:14:2: note: in expansion of macro ‘print’
print(5,c);
^
我無法弄清楚問題,請幫助謝謝。
因爲你不能做'--5'在C! –
我認爲你正在將宏與函數調用混淆。這裏沒有將'5'分配給'x'。 – Haris