【发布时间】:2014-12-21 15:29:26
【问题描述】:
在此程序中,TOTAL_ELEMENTS 在未用于 for 循环时会正确计算。第一个 printf 打印正确。但是为什么即使循环中的条件为真,第二个 printf 也不起作用。 TOTAL_ELEMENTS 返回7。而-1<7-2 即-1<5 是真的。那么这里有什么问题呢?
#include<stdio.h>
#define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))
int array[] = {23,34,12,17,204,99,16};
int main()
{
int d;
printf("Total= %d\n", TOTAL_ELEMENTS);
for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
printf("%d\n",array[d+1]);
return 0;
}
【问题讨论】:
标签: c c-preprocessor