2016-12-15 77 views
0

我碰到一些C代码,具有“无符号”全部由自己声明一个变量,就像这样:什么是'unsigned'意思是什么时候它本身?

unsigned crc = 0; 

我觉得这是很奇怪的,因为我期望在这里明确的变量类型。我很惊讶没有任何编译器警告或错误(MDK-Lite 5.12)。

那么,这是有效的,它会产生什么样的变量?

+0

请看这里:http://en.cppreference.com/w/c/language/arithmetic_types – axiac

+1

当然是一个骗局,但我更喜欢这里的最高评价答案。 (包含C引用) – chux

回答

8

C specification,第6.7.2节:

- 无符号,或无符号整型

意思就是说unsigned,如果未指定类型,将默认为unsigned int。所以编写unsigned aunsigned int a相同。

+0

在** 6.7.2中定义类型说明符** ... – Macmade

+0

感谢您的特定指针。添加了一条引用该评论的评论。 –