【发布时间】:2012-10-08 13:32:01
【问题描述】:
考虑下面的代码:
#include<stdio.h>
int array[]={1,2,3,4,5,6,7,8};
#define SIZE (sizeof(array)/sizeof(int))
int main()
{
printf("%d",SIZE);
if(-1<=SIZE) printf("1");
else printf("2");
return 0;
}
我得到 82 作为输出,但是如果我将 if(-1<=SIZE) 替换为 if(0<=SIZE) 或 if(1<=SIZE) 表示 if 子句中的 -1 为 0 或非负数,那么我得到 81 作为输出。为什么我得到不同的输出?
【问题讨论】:
标签: c if-statement c-preprocessor