viewimage.php?id=3dafdf21f7d335ab67b1d1&no=24b0d769e1d32ca73cef81fa11d0283127709d21227bb049fff2f62433c43532672ae00a28cb40289210c38b737732e2ef0ec2a0edaa5ba285c138a6e2de715200b391fb0b47






보통 구조체는 타입 선언해서 쉽게 사용하려고 하잖아요?


// 1번 소스

typedef struct infostudent

{

int number;

int grade;

} INFO_STUDENT;


void main()

{

INFO_STUDENT student;

student.number = 1;

}


예를 들어 위 소스 가장 위에서 INFO_STUDENT 타입을 새로 만들어서 main에서 쉽게 사용하죠




그런데 typedef struct infostudent의 infostudent이건 왜 써야되는지 모르겠는게 질문입니다.



//2번 소스

 typedef struct

{

int number;

int grade;

} INFO_STUDENT;


void main()

{

INFO_STUDENT student;

student.number = 1;

}


이렇게 해도 똑같이 작동하는데 왜 구조체 태그 infostudent를 써야되나요?


어차피 typedef한 새로운 자료형 이름인 INFO_STUDENT를 사용할테니 구조체 태그는 안써도 상관없지 않나요?


오히려 태그랑 타입이름 네이밍할때 고민할게 하나 줄어들어서 좋은 방식같다는게 제 생각인데 잘못알고 있는부분 있으면 짚어주세요