#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'와 함께? –
gcc x.c' OR'g ++ x.cpp'는 많은 메시지를 막을 것입니다. – technosaurus
@ShafikYaghmour 조언이 좋습니다. 컴파일러의 적절한 호출을 사용하고, g ++로 C++ 소스를 컴파일하고, gcc로 C 소스를 컴파일하십시오. 물론 gcc를 호출하여 C++ 소스를 컴파일 할 수 있지만보다 나은 동작을 얻으려면 많은 옵션을 수동으로 전달해야합니다. –