C是否允许8字节长的多字符文字?

C是否允许8字节长的多字符文字?,第1张

概述为什么允许这样做: uint32_t x = 'name'; 但这会被截断为32位: uint64_t x = 'namename'; 有没有办法有一个8字节长的多字符文字? 是的,只要您的编译器具有8字节的整数并支持它. 关于多字符文字,C标准非常简洁.这就是它就此事所说的全部(C 14,2.14.3 / 1): An ordinary character literal that contai 为什么允许这样做:

uint32_t x = 'name';

但这会被截断为32位:

uint64_t x = 'namename';

有没有办法有一个8字节长的多字符文字?

解决方法 是的,只要您的编译器具有8字节的整数并支持它.

关于多字符文字,C标准非常简洁.这就是它就此事所说的全部(C 14,2.14.3 / 1):

An
ordinary character literal that contains more than one c-char is a multicharacter literal. A multicharacter
literal,or an ordinary character literal containing a single c-char not representable in the execution character
set,is conditionally-supported,has type int,and has an implementation-defined value.

(强调我的)

如您所见,几乎所有标准都表示如果支持多字符文字(它们不一定是),则它们的类型为int.该值取决于编译器.

总结

以上是内存溢出为你收集整理的C是否允许8字节长的多字符文字?全部内容,希望文章能够帮你解决C是否允许8字节长的多字符文字?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1216918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存