我理解typedef的一般概念。但我偶然发现了这一点并且不知道这意味着什么:
typedef PackedIntItem <uint16_t, uint16_t, 0x0FFF, 0xF000, SomeClassName, uint16_t, 0xFFFF> SomeTypeName;
答案 0 :(得分:1)
typedef <old name> <new name>;
表示我想为数据类型指定一个新名称。通常是因为
在你的情况下你有用例#1
typedef PackedIntItem<uint16_t, uint16_t, 0x0FFF, 0xF000, SomeClassName, uint16_t, 0xFFFF> SomeTypeName;
旧名很长。现在你的问题归结为 - 这长长的名字究竟是什么?
它是模板化数据类型。这意味着形成了像这样的东西
template<type T1, type T2> class Elephant
{
T1 widget;
T2 oleAtIt;
}
但在你的情况下有更多的Ts。现在当你做
Elephant<int, char> dumbo;
您实际上获得了一个类的实例,就像您声明了
一样class Elephant
{
int widget;
char oleAtIt;
}
当您看到std::vector<int> listInt;
在你的情况下,有人制作了一个模板,其中包含非常多的参数。看看你是否能找到它的声明
模板是一个巨大的话题。谷歌很多。玩得开心