在c++代码中,以下关键字是什么意思?SIGSELECT,U32,U16,U8
In c++ code, what do the following keywords mean? SIGSELECT, U32, U16, U8
我有一个关于c++结构中关键字用法的问题。
我见过这样定义的结构:
typedef struct {
SIGSELECT signo;
U32 id;
U32 re;
U16 id1;
U8 id2;
}First;
请帮助我理解这些关键字:SIGSELECT、U32、U16、U8
它们的"含义"是一个相当深刻的问题,也取决于您所处的环境。
这些是类型名称,但不是标准的C++类型,所以它们不是众所周知的。
一种猜测是Uxx
类型是指定位宽的"无符号整数"。因此,U32
将是一个32位无符号整数,在C99中被称为uint32_t
,但在C++中尚未标准化。
SIGSELECT
有点难,但成员名为"signo
",这意味着这是一个信号号。如果代码用于类似POSIX的环境,那么SIGSELECT
很可能只是默认整数类型int
的别名。例如,请参阅本页。
某些标头执行
#define SIGSELECT int
或
typedef int SIGSELECT;
以便引入这个新名称(类似于提到的其他类型)。
要弄清楚这些是预处理器符号还是实际的typedef
:ed类型别名,请通过预处理器运行代码并读取其输出。如果措辞发生变化(即SIGSELECT
变为int
或其他类型),则它们是预处理器符号,否则它们是typedef
:s。
正如@AJG85在这个线程的评论中提到的那样,您可以通过包括标准库CSTDINT 来移植数据类型
#include <cstdint>
Alex Allain的这篇优秀文章更详细地描述了库和这些数据类型。
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- 错误:无效的预处理指令 #i 的意思是 #if?
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- Trie*& 和 Trie** 的意思是 Same?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- 错误:无法解析对重载函数的引用;你的意思是调用它吗?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 在命名空间名称之前加上 :: 是什么意思?
- 从字符数组的元素中减去'a'是什么意思
- 在c++代码中,以下关键字是什么意思?SIGSELECT,U32,U16,U8