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

所有C和C版本中的所有有效类型都是有符号,无符号,长和短吗?

发布时间:2020-12-16 09:51:13 所属栏目:百科 来源:网络整理
导读:在N3797 7.1.1 / 3中有以下注释: 注意:由于默认情况下signed,unsigned,long和short意味着int,因此在其中一个说明符之后出现的类型名称被视为正在(重新)声明的名称. 但这只是一个注释.是否在标准中的某个地方做出了相同的规范性陈述? 在每种情况下,是否使
在N3797 7.1.1 / 3中有以下注释:

注意:由于默认情况下signed,unsigned,long和short意味着int,因此在其中一个说明符之后出现的类型名称被视为正在(重新)声明的名称.

但这只是一个注释.是否在标准中的某个地方做出了相同的规范性陈述?

在每种情况下,是否使用符合标准的C和C来使用有符号,无符号,长和短而不使用int?

或者,将其放入代码中,是否遵循以下标准?如果是这样,它在哪里这样说?

signed a;
unsigned b;
short c;
long d;
signed f(signed p,unsigned q,short r,long s);
unsigned* f(signed* p,unsigned* q,short* r,long* s);

[我不愿意问这是推荐还是首选,因为害怕获得基于意见的答案.]

解决方法

据我所知,它一直都是这样,但我们至少可以回到最早公开的标准草案.对于C将是 1804并且在7.1.5.2节中简单类型说明符表7简单类型说明符及其指定的类型包括以下条目:

unsigned   “unsigned int”
signed     “int”
long       “long int”
short      “short int”

对于C,我们可以回到C99,它在6.7.2节类型说明符中说:

[…]Each list of
type specifiers shall be one of the following sets (delimited by commas,when there is
more than one set on a line); […]

并包括以下项目符号:

— short,signed short,short int,or signed short int

— int,signed,or signed int

— unsigned,or unsigned int

— long,signed long,long int,or signed long int

因此,这些所有符合标准的类型说明符和两个引号均来自相应标准草案的规范部分.

(编辑:李大同)

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

    推荐文章
      热点阅读