【发布时间】:2010-09-30 08:51:58
【问题描述】:
您好,刚接触 Visual C++,有人可以解释一下 ConfParams() 在结构中声明的作用
__declspec(align(BYTE)) struct ConfParams
{
BOOL m_timeout;
DOUBLE m_caution;
ConfParams();
}
【问题讨论】:
您好,刚接触 Visual C++,有人可以解释一下 ConfParams() 在结构中声明的作用
__declspec(align(BYTE)) struct ConfParams
{
BOOL m_timeout;
DOUBLE m_caution;
ConfParams();
}
【问题讨论】:
有人可以解释一下结构中声明的 ConfParams() 的作用
这是一个构造函数声明。
在 C++ 中,除了默认的可访问性级别 struct 和 class 是等效的。 struct 默认有public 成员,class 默认有private 成员。
我不清楚你的主题为什么引用__declspec,但如果这就是你想知道的see here。
成员函数没有对齐,只有数据受到影响。
【讨论】:
谷歌说
http://msdn.microsoft.com/en-US/library/83ythb65%28v=VS.80%29.aspx
“使用 __declspec(align(#)) 精确控制用户定义数据的对齐方式(例如,静态分配或函数中的自动数据)”
它将使编译器在字节边界上启动每个实例。如果没有它,实例将在机器自然边界上对齐 - 这可能是 4 个字节。
【讨论】: