它是一个不好的做法,没有明确设置一个结构的每个成员的值,例如在CHARFORMAT结构,你可以声明初始化这一切在这样一行:好的,以使用初始化程序列表来初始化Windows API结构?
CHARFORMAT foo = {sizeof(CHARFORMAT),CFM_FACE,0,0,0,0,0,0,"Arial"};
我特别喜欢做这样做的原因不仅在于键入的少,而且我不必调用_tcscpy或类似的东西来复制到szFaceName的字符串值中。我不确定这是否更快,我不在乎它是否是,我不打算移植或更改编译器,SDK库或任何东西。
我想知道的是,这样做会不会影响init?如果是这样,涉及的风险显然不值得麻烦吗?我是否应该避免用这种方式初始化结构,只是明确地做到这一点?
脚注:目前我使用这个编译器/连接: –
微软(R)32位C/C++优化编译器版本12.00.8168 微软(R)增量链接器版本6.00.8168 微软(R)库管理器版本6.00.8168 IDE:notepad2.exe和msdev.exe(visual c + + 6.0) (全部为80x86) –
这甚至编译? – cen