Language/C
[C] typedef struct와 타입 전방 선언으로 인한 C2371 오류
어발
2023. 1. 3. 19:33
// Error.h
#pragma once
struct Test;
class Error {
public:
void Callfunction (Test& ref);
};
// Test.h
typedef struct _Test {
int a;
} Test; // Error C2371
/* 혹은 이름을 생략하고 선언한 경우
typedef struct {
int a;
} Test;
*/
위와 같이 Error.h에서 구조체 Test를 전방선언하고 Test.h에서 Test를 정의하는 경우 C2371오류가 발생한다.
해결방법
1. 태그명과 타입명을 동일하게 정의
// Test.h
typedef struct Test {
int a;
} Test;
2. typedef를 사용하지 않고 구조체 정의
// Test.h
struct Test {
int a;
};
728x90