OpenEdv-开源电子网
标题: 问个问题哈,关于数字后缀L的用法 [打印本页]
作者: WM_CH 时间: 2016-8-13 19:53
标题: 问个问题哈,关于数字后缀L的用法
代码如下:
[mw_shl_code=applescript,true]unsigned long num;
num = num * 24 * 60 * 60;
[/mw_shl_code]
[mw_shl_code=applescript,true]unsigned long num2;
num2 = num2 * 24L * 60L * 60L;[/mw_shl_code]
这有什么区别?假如不加后缀L的话,是什么情况?
作者: 嗷大喵 时间: 2016-8-13 19:53
告诉编译器 你这个数值是按long型 计算的
作者: WM_CH 时间: 2016-8-15 10:07
顶一下
作者: xuande 时间: 2016-8-15 10:10
好像头次见。
作者: civic7366 时间: 2016-8-15 13:56
要看編譯器預設是什麼吧...
M4應該原本就是預設就是32位有號整數所以加不加沒差
後綴在浮點常數比較有差吧...
試試float num=3.0f/2 跟 3/2
作者: WM_CH 时间: 2016-8-18 10:23
关键是,假如不加L,以下代码会有什么影响:
[mw_shl_code=applescript,true]num2 = num2 * 24L;[/mw_shl_code]
作者: WM_CH 时间: 2016-8-18 11:49
本帖最后由 WM_CH 于 2016-8-18 15:03 编辑
C语言中常量的默情况:整形默认为有符号int;浮点型默认为double。
如果整形常量大小超出int,默认自然就为long int;
如果需要无符号整形常量的话就可以在常量后面加u或是U,如0u或是0U,同理可以在常量后面加ul或UL表示无符号长整形常量。而浮点型常量后缀只有f或F,l或L,没有u或U,因为浮点数一般都为有符号。
(, 下载次数: 1)