본문 바로가기
VisualStudio.C++.C#/코딩팁,함수활용,단편

C/C++ . 구조체 typedef struct , struct 차이점

by i.got.it 2026. 3. 8.

 

 

 

 

 

C++ 

C++ 에서는 구조체 이름 자체가 독립적인 타입.  내부나 외부 어디서든 struct 없이 my_st만 써도 된다. 

struct my_st
{
	int i;
};

void func(my_st * p_myst); // 가능.

//// 구조체 멤버가 자기자신 참조 하는 경우 
struct my_st
{
	int i;
    my_st* p_my_st; // 가능. 
};

 

 

C 에서는 구조체 이름앞에 struct 명시필수. strruct 부착 안할려면 typedef struct .. 형식으로 선언한다. 

struct my_st
{
	int i;
};

void func(struct my_st * p_myst); // 항상 struct 임을 명시해야함.


////////////////// typedef struct 

typedef struct _my_st //구조체 태그 
{
	int i;
} my_st; // 구조체 앨리어스 

void func(my_st * p_myst); // struct 명시없이 가능. 

////// typedef struct 정의하면서 구조체 태그 필요한 경우 . 멤버가 자기참조하는경우

typedef struct _my_st //구조체 태그 
{
	int i;
    struct _my_st * p_my_st; // 
} my_st; // 구조체 앨리어스


///////// 구조체 태그없이 정의해도됨.

typedef struct  
{
	int i;
} my_st;

 

 

 

C 스타일 구조체 정의 방식은  C++ 에서도 모두 지원되므로  C, C++ 혼재된 프로젝트라면 C 스타일로 구조체 정의하는게 유리함. 

 

 

 

 

 


첫 등록 : 2026.03.08

최종 수정 : 

단축 주소 : https://igotit.tistory.com/6496


 

 

 

댓글



비트코인




            암호화폐/외환/나스닥/골드          
       
현물 |선물 인버스 |선물 USDT , bybit MT5               프랍 트레이딩. MT4,MT5