相关疑难解决方法(0)

char默认是签名还是未签名?

在"C的完整参考"一书中,提到char默认情况下是无符号的.

但我试图用GCC和Visual Studio验证这一点.它默认签名.

哪一个是正确的?

c signed types char

145
推荐指数
5
解决办法
8万
查看次数

C++的简单JSON字符串转义?

我有一个非常简单的程序,输出简单的JSON字符串,我手动连接在一起并通过std :: cout流输出(输出真的很简单)但我有字符串,可以包含双引号,大括号和其他可能破坏JSON字符串的字符.因此,我需要一个库(或更准确的函数)来相应地将字符串转义为JSON标准,尽可能轻量级,仅此而已.

我找到了一些用于将整个对象编码为JSON的库,但考虑到我的程序是900行cpp文件,我宁愿不依赖于比我的程序大几倍的库来实现像这个.

c++ json

33
推荐指数
3
解决办法
3万
查看次数

为什么char的符号没有在C中定义?

C标准规定:

ISO/IEC 9899:1999,6.2.5.15(第49页)

char,signed char和unsigned char这三种类型统称为字符类型.实现应将char定义为具有与signed char或unsigned char相同的范围,表示和行为.

确实gcc根据目标平台定义.

我的问题是,为什么标准会这样做?除了可怕的和难以发现的错误之外,我看不出任何可能来自模糊类型定义的内容.

更重要的是,在ANSI C(C99之前)中,唯一的字节大小类型是char,因此使用char进行数学运算有时是不可避免的.所以说"一个人永远不应该使用char来表示数学"并非如此.如果是这样的话,一个理智的决定是包括三种类型" ,".charubytesbyte

有没有理由,或者它只是一些奇怪的向后兼容性问题,以便将坏(但常见)编译器定义为标准兼容?

c standards unsigned gcc char

20
推荐指数
3
解决办法
2131
查看次数

如何检查普通字符是签名还是未签名?

显然char,默认情况下plain 可以是signed或unsigned.Stroustrup写道:

它是实现定义的普通char是被认为是签名还是未签名.这开启了一些令人讨厌的惊喜和实现依赖的可能性.

如何检查我的字符是签名还是未签名?我可能想把它们转换成int以后,我不希望它们是负面的.我应该总是unsigned char明确使用吗?

c++ syntax char

13
推荐指数
2
解决办法
3491
查看次数

Gcc:强制编译器默认使用unsigned char

由于在不存在限定符char时,C++中的a的性质是编译器相关的unsigned,是否有一个参数可以传递给GCC,这会强制所有的chars被编译为unsigned

c++ unsigned gcc char

10
推荐指数
3
解决办法
9582
查看次数

某些平台默认情况下int int是unsigned int吗?

int默认情况下是否可以取消签名,char如果存在,有人可以提供这些平台吗?

我的意思是char可以根据平台进行未签名或签名.是同样的事情适用于int,long,short

c c++

1
推荐指数
3
解决办法
189
查看次数

标签 统计

c++ ×4

char ×4

c ×3

gcc ×2

unsigned ×2

json ×1

signed ×1

standards ×1

syntax ×1

types ×1