今天小朋友问我 #define INTEGER 1 和 #define U_SUFFIX_INTEGER 1u 的区别(1和1ul也同理)。我写了个测试代码,请看:
// test.cpp
//#include "stdafx.h"
#include "string.h"
#define INTEGER 3
#define U_SUFFIX_INTEGER 3u
void 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);
}
运行结果如下: