私は次のコードで引数としてマクロを使用して時刻の文字列「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 }
しかし、コンパイル中、I次のエラーが表示されます: -
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