2014-09-28 4 views
1

C11이 바이트 및 vec3_t와 같은 사양의 일부로 일부 항목을 포함하는지 확인하십시오.바이트 및 vec3_t typedef'd

#ifdef을 통해 경고없이 가능한 많은 컴파일러를 이미 너무 많이 지원하는지 여부를 판단 할 수있는 방법이 있습니까?

+2

이것에 대한 참조 사항이 있습니까? * C11은 byte 및 vec3_t. *와 같은 사양의 일부로 몇 가지 사항이 있습니다. – 2501

+0

Clang이 저에게 컴파일러 경고를 던지고 있습니다 (경고 : typedef 'byte'의 재정의는 C11 기능 [-Wtypedef-redefinition] 임). –

답변

1

오류 메시지를 잘못 해석 한 것입니다. 이러한 유형은 C11에서 정의하지는 않지만 이미 include 파일에 정의되어있는 것으로 보입니다. 메시지가 참조하는 것은 C11 typedef이 동일한 유형을 참조하는 경우 다시 반복 될 수 있기 때문입니다. 변수 또는 함수 선언과 동일한 동작 또는 #define을 가지도록 만들어졌습니다. 이 모든 것은 일관성있는 한 여러 번 나타날 수 있습니다.

이 기능을 사용하려면 -std=c11 또는 -std=gnu11 옵션으로 컴파일해야합니다. 이렇게하면 메시지가 사라집니다.

아마도 귀하의 포함 논리에 오류가 있다는 메시지가 표시 될 수 있으므로이를 이해하는 것이 좋습니다.