【发布时间】:2011-02-03 06:11:17
【问题描述】:
#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 循环中抛出语法错误。知道问题出在哪里吗?
【问题讨论】:
标签: c loops for-loop c-preprocessor