我碰到一些C代码,具有“无符号”全部由自己声明一个变量,就像这样:什么是'unsigned'意思是什么时候它本身?
unsigned crc = 0;
我觉得这是很奇怪的,因为我期望在这里明确的变量类型。我很惊讶没有任何编译器警告或错误(MDK-Lite 5.12)。
那么,这是有效的,它会产生什么样的变量?
我碰到一些C代码,具有“无符号”全部由自己声明一个变量,就像这样:什么是'unsigned'意思是什么时候它本身?
unsigned crc = 0;
我觉得这是很奇怪的,因为我期望在这里明确的变量类型。我很惊讶没有任何编译器警告或错误(MDK-Lite 5.12)。
那么,这是有效的,它会产生什么样的变量?
从C specification,第6.7.2节:
- 无符号,或无符号整型
意思就是说unsigned
,如果未指定类型,将默认为unsigned int
。所以编写unsigned a
与unsigned int a
相同。
在** 6.7.2中定义类型说明符** ... – Macmade
感谢您的特定指针。添加了一条引用该评论的评论。 –
请看这里:http://en.cppreference.com/w/c/language/arithmetic_types – axiac
当然是一个骗局,但我更喜欢这里的最高评价答案。 (包含C引用) – chux