#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