#include <stdio.h>
#define UNITS {'*', '#', '%', '!', '+', '$', '=', '-'}
#define PrintDigit(c, d) (for (i=0; i < c ; i++)putchar(unit[d]);)
char unit[] = UNITS;
//void PrintDigit(c, element) {
// int i;
// for (i=0; i < c ; i++)
// putchar(unit[element]);
//}
int main() {
int i, element=4;
PrintDigit(10, element);
putchar('\n');
return 0;
}
我有這裏的功能PrintDigit()
它按預期工作。當試圖將函數轉換爲#define時,gcc一直在for循環中拋出一個語法錯誤。任何想法是什麼問題?For循環在#define
該死,括號是問題?努力想明白爲什麼這是一個問題。感謝壽! – hspim 2010-04-01 07:08:00
@hspim:已更新我的答案。 – codaddict 2010-04-01 07:16:45