#include <stdio.h>
#include <string.h>
typedef struct STest
{
unsigned int uiRoll;
unsigned short usiVal;
} TTest;
int main()
{
TTest oTest = {0}; /* Initialize the Values with 0 */
printf("The values are: %d, %d\n", oTest.uiRoll, oTest.usiVal);
return 0;
}
观察:如何在使用GCC“-Wextra”选项编译时初始化C结构而不产生警告?
- 编译与
gcc -Wextra -o a aa.cpp
- 在收到警告:
warning: missing initializer for member STest::usiVal
- 我也与memset的功能,但仍然得到同样的警告尝试。
- 第一个结构元素没有警告消息。
如何初始化结构?所以没有警告信息。
用'-Wno-missing-field-initializers'? – 2013-05-01 12:42:34
使用'gcc x.c'或者'g ++ x.cpp'会阻止很多未来的消息 – technosaurus 2013-05-01 12:49:36
@ShafikYaghmour建议很好。使用适当的编译器调用,使用g ++编译C++源代码,使用gcc编译C源代码。您当然可以通过调用gcc来编译C++源代码,但是您需要手动传递很多选项才能获得更好的行为。 – 2013-05-01 12:59:55