c - 默认情况下,char 是有符号的还是无符号的?

标签 c types char signed

在“C 的完整引用”一书中提到 char 默认是无符号的。

但我正在尝试使用 GCC 和 Visual Studio 来验证这一点。它默认将其视为已签名

哪个是正确的?

最佳答案

这本书错了。该标准未指定是否为普通 char有符号或无符号。

事实上,该标准定义了三种不同的类型:char , signed char , 和 unsigned char .如果你#include <limits.h>然后看CHAR_MIN ,你可以找出是否普通 charsignedunsigned (如果 CHAR_MIN 小于 0 或等于 0),但即便如此,就标准而言,三种类型是不同的

请注意 char在这方面很特别。如果您将变量声明为 int它 100% 等同于将其声明为 signed int .这对所有编译器和架构都是正确的。

关于c - 默认情况下,char 是有符号的还是无符号的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27175429/

相关文章:

c - Linux C程序中如何设置全局变量在某个函数中只读,而在其他函数中可读写

mysql - C Mysql 连接处理程序

用C语言创建一个随机字符

C++ 和 SQLite - 如何执行由用户输入形成的查询?

Java将10读为2个字符,如何改变这个

c++ - 适用于8位MCU的更快的16位乘法算法

c# - 是否可以提供多个约束作为类型参数?

python - Pandas 将混合类型转换为字符串

c# - 为什么我必须在 assembly.GetType() 的参数中指定命名空间?

c - char如何存储两个数字?