我正在读旧c代码(1991),我不明白,有一个定义如下:
#define SLEEP_MIN (SLEEP_SEC*60L)
SLEEP_SEC
定义为60
,60L
的含义是什么?
答案 0 :(得分:0)
引用C11
,第6.4.4.1章,整数常量
语法
整数常数:
十进制常数整数后缀 opt整数后缀:
unsigned-suffix long-suffix opt
unsigned-suffix long-long-suffix
long-suffix unsigned-suffix opt
long-long-suffix unsigned-suffix optlong-suffix:中的一个
l
L
因此,60L
正在使60
类型为long
。
相关:为什么L
是必需的,
[5]整数常量的类型是其值可以在其中的第一个相应列表 代表。
因此,如果没有L
后缀,60
将被视为int
。
答案 1 :(得分:0)
这是一个整数文字。
特别是,L
代表long
类型的文字
由于整数文字的类型为int
by default (or not),L
后缀明确表示文字属于long
类型,有效地使SLEEP_MIN
成为{{1} (就宏而言可以有一个类型)。