什么是变量类型位(32)
What is a variable type bit(32)?
什么是
bit(32( 类型的变量,我什么时候可以使用它?我似乎也无法在我自己的C++代码(在 xcode 中(复制此声明。这是它在 mp4 文件规范中使用的示例,作为类中变量声明的一部分:
bit(32)[6] pre_defined = 0;
aligned(8) class MovieHeaderBox extends FullBox(‘mvhd’, version, 0) {
if (version==1) {
unsigned int(64) creation_time;
unsigned int(64) modification_time;
unsigned int(32) timescale;
unsigned int(64) duration;
} else { // version==0
unsigned int(32) creation_time;
unsigned int(32) modification_time;
unsigned int(32) timescale;
unsigned int(32) duration;
}
template int(32) rate = 0x00010000; // typically 1.0
template int(16) volume = 0x0100; // typically, full volume
const bit(16) reserved = 0;
const unsigned int(32)[2] reserved = 0;
template int(32)[9] matrix = { 0x00010000,0,0,0,0x00010000,0,0,0,0x40000000 };
// Unity matrix
bit(32)[6] pre_defined = 0;
unsigned int(32) next_track_ID;
}
显示的代码段未C++。您引用的标准说:
框的定义以 MPEG-4 中定义的语法描述语言 (SDL( 给出(请参阅第2条中的参考文献(。
该语言似乎在 ISO/IEC 14496-1 中指定。它说
- 句法描述 语言 注意名称略有不同,与 14496-12 中提到的名称相比
12.2.1 常长直接表示位域
恒定长度直接表示位字段表示为:
规则 E.1.:基本数据类型
[aligned] type[(length)] element_name [= value]; // C++-style comments allowed
类型可以是以下任何类型:"int"表示有符号整数,"无符号 int"表示无符号整数,"double"表示浮点,"bit"表示原始二进制数据。
这不是C++,只是伪代码。这只是意味着它是 32 位布尔值。因此,有效值为 0 或 1,而不是全部为 32 位,并且该名称可能也用于将其与 unsigned int
区分开来。C++你必须使用std::uint32_t
或者你可以使用枚举:
enum class 32bitBool : std::uint32_t{
Yes = 1,
No = 0
};
相关文章:
- 从模板创建通用打印函数,以打印基元数据类型变量的值
- 指针数据类型变量如何包含对象?
- 将 static_cast<int>(-15) 分配给静态常量字符类型变量
- 将内置类型变量传递给只有一个类类型参数的"+"运算符函数时自动类型转换的构造函数
- 如何为结构类型变量赋值
- 如何将字符类型变量附加到字符串中?
- 共享或私有 openmp 代码中的结构化类型变量
- 有没有办法在 c++ 中制作类型变量?
- 从其他类声明类类型变量会给出 C2143 错误(在"*"之前缺少";")
- 如何检查类中定义的枚举类型变量是否被分配给?
- 将子类实例保存在父类型变量中并通过父变量使用 Child 函数?
- 是否可以在没有结构的情况下创建新的类型变量?
- 为什么类型变量;不调用默认 CTR
- 如何使用CIN将输入整数值获取到char类型变量中
- 如何为 char** 类型变量提供适当的值,以便将其分配给字符串变量
- 在C++标准中哪里说必须初始化 const 内置类型变量的定义
- 为什么可以将其他类型变量用作C 中常量参考参数参数的参数
- Eclipse CDT 打开声明的自动类型变量
- 如何计算长长类型变量中的位数
- 将自动类型变量初始化为零.这种类型安全吗?