今天小朋友问我 #define INTEGER 1 和 #define U_SUFFIX_INTEGER 1u 的区别(1和1ul也同理)。我写了个测试代码,请看:
// test.cpp
//#include "stdafx.h"#include "string.h"#define INTEGER3#define U_SUFFIX_INTEGER3uvoid Test(void);int _tmain(int argc, _TCHAR* argv[]){Test();getchar();return 0;}void Test(void){double dVar = 0;printf("the sizeof(INTEGER) is %d \n", sizeof(INTEGER));printf("the sizeof(U_SUFFIX_INTEGER) is %d \n", sizeof(U_SUFFIX_INTEGER));printf("the sizeof(dVar) is %d \n\n", sizeof(dVar));dVar = INTEGER + 0x7FFFFFFE;printf("the value of the var is %lf \n", dVar);dVar = U_SUFFIX_INTEGER + 0x7FFFFFFE;printf("the value of the var is %lf \n", dVar);
}
运行结果如下:
,对的,坚持;错的,放弃!