기본적인 접근법 구조체 초기화 :정적 제로
struct TEST
{
float c;
unsigned int c1;
double c2[5];
} t = {0};
경고를 준다 :
길고, 숯 (그러나 어레이) 등을 int로 설정 중에 C ...경고 '구조체 TEST'[-Wmissing 필드 - 초기화 필드 'C1'에 대한 이니셜 누락 ]
#define ADD_STRUCT_TO_ARRAY(xu) X(xu, &(struct xu){})SEP
이다 I 이런 다음 줄이 :
경고 : 이니셜 주위 중괄호 누락 [-Wmissing-괄호]
이었다 어레이는 경고를 준다 구조체가 여러 위치에서 초기화되어야하기 때문에 필요합니다.
이경고 : 필드 초기화 누락이 '구조체 A'의 'A1'은 [-Wmissing 필드가-초기화] C99 표준에 의해
가 제로로 초기화해야하지만 나에게 경고를 제공 경고를 없애시겠습니까?
#define ADD_STRUCT_TO_ARRAY(xu) X(xu, &(struct xu){0})SEP
에 변화가 거의 경고 제거하지만 구조체의 첫 번째 요소는 부동 또는 더블입니다하지 않을 경우.
도 0.0 설정?, 무슨 일이 일어나고 있는지 어떤 생각
는
그래서 X와 SEP은 무엇인가요? 그리고 거의 경고하지 않는 점은 무엇입니까? – BonzaiThePenguin
명확한 example.X 및 SEP로 편집하면 쉽게 무시할 수있는 매크로입니다. – Lesto
감사합니다. 편집 한 예가 실제로 훨씬 명확합니다. – BonzaiThePenguin