最佳答案
我在为一个项目创建某种前端。为了启动程序,我使用了调用 CreateProcess()
,它接收到一个指向 STARTUPINFO
结构的指针。初始化我过去常用的结构:
STARTUPINFO startupInfo = {0}; // Or even '\0'.
startupInfo.cb = sizeof(startupInfo);
当用 GCC 编译程序时,启用这些警告 -Wall -Wextra
,它会给我一个警告,说有一个缺少的初始化器指向第一行。
warning: missing initializer
warning: (near initialization for 'startupInfo.lpReserved')
所以我最后做了:
STARTUPINFO startupInfo;
memset(&startupInfo, 0, sizeof(startupInfo));
startupInfo.cb = sizeof(startupInfo);
这样编译器就不会给出任何警告。 问题是,这些初始化结构的方法有什么不同? 使用第一个方法,结构不是已经初始化了吗? 你推荐哪一个?