有一些老外的开源项目里经常能见到 loop 宏定义,总结下
#include <stdio.h>
#define loop(x,n) for (int x = 0; x < n; ++x)
int main() {
int i;
loop(i, 10)
{
printf("%d\n", i);
}
return 0;
}
gcc loop.c 可能会报以下的错
c.c:3:19: error: ‘for’ loop initial declarations are only allowed in C99 mode
从上面的错可以看到在宏里定义for 只允许在 c99 模式下定义
于是 gcc -std=c99 loop.c 搞定