我正在阅读一些关于嵌入式编程的教程,其中一个教程说int
和signed int
是不同的,但没有解释它们的区别。
我明白为什么unsigned int
和int
不同,但int
和signed int
不同是新的知识。
我正在阅读一些关于嵌入式编程的教程,其中一个教程说int
和signed int
是不同的,但没有解释它们的区别。
我明白为什么unsigned int
和int
不同,但int
和signed int
不同是新的知识。
这只是出于历史原因。今天,无论何时声明int
,您都会得到一个signed int
。即使是在今天的编译器中,您可能看到唯一有区别的地方是char
与signed char
,它们根据规范不同(并且在分配文字字符串时显着),但对于int
则没有区别。
char
是signed
还是unsigned
是未定义的。标准对此没有任何规定。 - Kiril Kirovchar
的这种特殊性。C99标准第6.2.5节第4段提供了“普通”int
是有符号的保证。 - Vilhelm Graychar a;
可以根据编译器选项变为signed char a;
或unsigned char a;
。正如这篇文章所说。(--signed_chars) 对于int数据类型,int
和signed int
之间没有区别。