在Windows注册表中,如何CurrentControlSet从不同
ControlSet001和ControlSet002?安装所有用户时应该设置哪个?
我们正在尝试为所有用户添加环境变量.它是否正确?
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Envinronment
Run Code Online (Sandbox Code Playgroud) 在以前的雇主,我们写的二进制消息必须"通过电线"到其他计算机.每条消息都有一个标准标题,例如:
class Header
{
int type;
int payloadLength;
};
Run Code Online (Sandbox Code Playgroud)
所有数据都是连续的(标题,紧接着是数据).我们希望得到有效载荷,因为我们有一个指向标题的指针.传统上,您可能会说:
char* Header::GetPayload()
{
return ((char*) &payloadLength) + sizeof(payloadLength);
}
Run Code Online (Sandbox Code Playgroud)
甚至:
char* Header::GetPayload()
{
return ((char*) this) + sizeof(Header);
}
Run Code Online (Sandbox Code Playgroud)
这看起来很冗长,所以我想出了:
char* Header::GetPayload()
{
return (char*) &this[1];
}
Run Code Online (Sandbox Code Playgroud)
起初看起来相当令人不安,可能使用起来太奇怪 - 但非常紧凑.关于它是辉煌还是令人憎恶,有很多争论.
那么它是什么 - 犯罪编码,还是不错的解决方案?你曾经有过类似的权衡吗?
- 更新:
我们确实尝试过零大小的数组,但当时编译器发出了警告.我们最终采用了以下技术:消息来自Header.它在实践中很有效,但原则上你说的是一条消息IsA Header - 这看起来有点尴尬.