두 개의 구조체는 동일한 멤버를 가지고 있어도 다른 유형이다. struct S1 { int a; }; struct S2 { int a; }; S1과 S2는 두 가지 다른 유형이므로 다음과 같다. S1 x; S2 y = x; // error : type mismatch 구조체는 또한 멤버로 사용되는 형식과 다른 형식이다. S1 x; int i = x; // error : type mismatch 모든 구조체는 프로그램에서 고유한 정의를 가져야 한다.