加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 09:59:29 所属栏目:百科 来源:网络整理
导读:为什么允许这样做: uint32_t x = 'name'; 但这会被截断为32位: uint64_t x = 'namename'; 有没有办法有一个8字节长的多字符文字? 解决方法 是的,只要您的编译器具有8字节的整数并支持它. 关于多字符文字,C标准非常简洁.这就是它就此事所说的全部(C 14,2.1
为什么允许这样做:

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.该值取决于编译器.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读