在c ++代码中,以下关键字是什么意思?SIGSELECT,U32,U16,U8

9 c++ struct typedef

我有一个关于c ++结构中关键字用法的问题.

我见过这样定义的结构:

typedef struct {
    SIGSELECT signo;
    U32 id;
    U32 re;
    U16 id1;
    U8 id2;
}First;
Run Code Online (Sandbox Code Playgroud)

请帮助我理解这些关键字:SIGSELECT,U32,U16,U8

unw*_*ind 14

他们"意味着什么"是一个非常深刻的问题,也取决于你所处的环境.

这些是类型名称,但不是标准的C++类型,所以它们并不是普遍知道的.

猜测是Uxx类型是指定位宽的"无符号整数".因此,U32这将是一个32位无符号整数,即uint32_tC99中已知的但尚未在C++中标准化.

SIGSELECT有点困难,但成员名为" signo",这意味着这是一个信号编号.如果代码是针对类似POSIX的环境,那么它很可能SIGSELECT只是默认整数类型的别名,int.例如,请参阅此页面.

一些标题也可以

#define SIGSELECT int
Run Code Online (Sandbox Code Playgroud)

要么

typedef int SIGSELECT;
Run Code Online (Sandbox Code Playgroud)

为了引入这个新名称(并且类似于提到的其他类型).

要确定这些是预处理程序符号还是实际typedef:ed类型别名,请通过预处理程序运行代码并读取其输出.如果措辞改变(即SIGSELECT变成int或其他类型),它们是预处理器符号,否则它们是typedef:s.