文章结构
1.c语言 #define 中的UL
一、c语言 #define 中的UL
U和L是 整数文字量的后缀修饰,用于显示指明整数文字量的类型为unsigned int(U)和long int(L)。
类似的还有浮点数文字量的后缀修饰F或f,用于指明文字量表示的是一个float,而不是默认情况下的double。
主要是指定宏定义的数据类型为无符号整形,因为C语言中默认宏中的数字是整型数据。防止数值溢出,产生问题。
例如:一年的秒数可以这样写
#define SECONDS_PER_YEAR (60*60*24*365)UL
注意:在Xcode中不能将
#define SECONDS_PER_YEAR 60*60*24*365UL 写成
#define SECONDS_PER_YEAR (60*60*24*365)UL在
编译GCC程序,提示这个错误 error: expected ‘,’ or ‘;’ before ‘UL’;是因为UL写在了括号外面,无法与数据进行匹配;
注:我用其他编译器验证#define (60*24*365)UL是可以编译通过的!!
网友评论