放置未签名的关键字
Placement of the unsigned keyword
是否
unsigned int a;
与相同
int unsigned a;
也就是说,我想知道的,在以下代码中:
typedef int unsigned my_uint32;
"unsigned"是指my_uint32还是指int?它和一样吗
typedef unsigned int my_uint32;
要继续,语法为:
typedef keywords alias;
因此CCD_ 1与CCD_。
当你定义自己的类型时,你可能会很谨慎。在您的情况下,如果您想要一个4字节的类型,如果您用C编码,则应该使用stdint.h(uint32_t)中定义的类型,或者如果您用C++编码,则应使用cstilt中定义的,因为"int"是"至少4字节",而不是在每种情况下都是"4字节"。
首先,您不能创建标记为unsigned
/signed
的自己的类型,因此它只能应用于预先存在的类型。
其次,是的,交换限定符的位置是有效的:
[C++11: 7.1.6.2/3]:
当允许多个简单类型说明符时,它们可以以任何顺序与其他decl说明符..]
因此,这两个声明是等价的
C++声明(在最简单的情况下)由两部分组成:声明说明符和声明符。所有内容正在声明的内容或第一个"运算符"(例如*
或&
)是声明说明符的一部分,其中order没关系。所以你可以自由地写这样的东西:
int const unsigned static i;
(如果你不在乎你的同事怎么看你的代码)。
C已经反对将存储类说明符(static
,extern
等),而这是自公元前早期以来,一种普遍接受的惯例。其余:
我总是看到修饰符在基本类型之前(例如。
typedef unsigned int my_uint32
0),当基本类型出现时。大部分我工作过的地方将使用简单的unsigned
,而不是unsigned int
。我也经常看到
signed
/unsigned
在任何长度修饰符:unsigned long
,而不是long unsigned
。CCD_ 17或CCD_。大部分我认识的更有经验的程序员把它放在了最后声明说明符的,但这是最近的发展,许多人继续使用老年人约定,并将其立即放在存储类之后说明符。
对于除存储类说明符之外的所有类任意的我想说的唯一一条普遍的规则是没有像我在实例
声明是等价的。
- Visual Studio 2015:Extern "C" 和 "export" 关键字
- C++中的"inline"关键字
- 如何确保C++函数在定义之前声明(如override关键字)
- 谷歌模拟和覆盖关键字
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- 如果全局变量默认是外部变量,为什么要添加"extern"关键字?
- 当我从下面的代码中删除关键字 virtual 时,它可以正常工作,否则会出现错误。在这里"virtual"字的意义是什么?
- 为什么"delete"关键字不删除节点?
- 在 c++ 中正确定义"this"关键字?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- 在 typedef 内部使用 const 关键字和在 typedef 外部使用 const 关键字之间有区别吗?
- C++ - 为什么这里需要'template'关键字?
- C++函数的关键字?
- 使用 'typename' 关键字将非类型视为依赖上下文中的类型
- "friend"关键字在C++中是什么意思?
- 声明C++数组(带或不带 "new" 关键字)
- 对齐和对齐的实际用例C++关键字
- 在 c++ 中三元运算符中不允许继续(关键字)吗?
- 考虑到其他好处,关键字'auto'真的有助于简化调试C++吗?
- 在 Objective-C++ -> EXC_BAD_ACCESS Error 中使用"new"关键字