gpt4 book ai didi

c - ISO C 和有符号文字常量

转载 作者:太空狗 更新时间:2023-10-29 15:55:15 25 4
gpt4 key购买 nike

我刚开始阅读 ISO C 2011 标准,它的最后一个公开草案 [1] , 并意识到在 C Lexical Grammer [1] [458ff.] 所有(文字)数字常量都是无符号的。

这是否意味着编译器解释一个带符号的数字常量(如 -5.1E10 或 -1)作为相应的一元运算符的调用?例如 -1 <=> -(1) , +512 <=> +(512)

更新:我的错,“所有(文字)数值常量都是无符号的”我的意思是“所有(文字)数值常量都是非负数”

关注,托马斯

最佳答案

所有无后缀的十进制整数文字都是有符号的,但它们不能为负数。也许非负数是您所说的“无符号”的意思,但我认为区分它们很重要——它们不是 unsigned int 类型。

一旦您获得正文字,就会应用一元运算符。这就是为什么 INT_MIN 通常被定义为:

#define INT_MIN     (-2147483647 - 1)

因为您不能在这个平台上用 signed int 表示 2147483648。

关于c - ISO C 和有符号文字常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17899318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com