Bri*_*ndy 32
#define没有大小,因为它不是类型,而是纯文本替换到您的C++代码中. #define是一个预处理指令,它在代码甚至开始编译之前运行.
替换后的C++代码中的大小与您在那里的C++表达式或代码的大小无关.例如,如果你后缀为Llike 102L那么它看起来很长,否则没有后缀,只是一个int.因此x86和x64上可能有4个字节,但这取决于编译器.
也许C++标准的Integer文字部分将为您清除它(C++ 03标准的第2.13.1-2节):
整数文字的类型取决于其形式,值和后缀.如果它是十进制且没有后缀,则它具有这些类型中的第一个,其值可以表示为:int,long int; 如果该值不能表示为long int,则行为未定义.如果它是八进制或十六进制且没有后缀,则它具有这些类型中的第一个,其值可以表示为:int,unsigned int,long int,unsigned long int.如果它以u或U为后缀,则其类型是这些类型中的第一个,其值可以表示为:unsigned int,unsigned long int.如果它以l或L为后缀,则其类型是这些类型中的第一个,其值可以表示为:long int,unsigned long int.如果它以ul,lu,uL,Lu,U1,lU,UL或LU为后缀,则其类型为unsigned long int