C언어 구조체선언과 typedef선언 햇갈립니다 ㅠ
이루리라
2023.04.01
질문1. 저는 구조체를배우면서 typedef를 왜쓰는지 도저히이해가안됫지만 이 코드를보고나서 이해가조금되느거같습니다tpydef를 쓰는가장큰이유는 struct 태그를 생략하기위함인가요?
질문2. 귀찮으시겟지만 제가적어논 주석(소스해석)이 재대로이해하고쓴거지 어디부분이틀렷는지 말씀해주시면 감사하겠습니다 ㅠㅠ
-
푸른마을
구조체포인터변수에 구조체변수를대입시키면 둘다구조체변수가되는거죠?
-
큰돛
구조체의 주소값을 저장하는 변수가 맞습니다.
SDATA data3;
PSDATA pd2;
pd2 = &data3;
처럼 사용가능합니다.
이는
SDATA data3;
SDATA *pd2;
pd2= &data3;
과 같아요. -
사에
포인터를맴버로한 구조체가아닌 구조체자체가 포인터변수라는말슴이시죠?
일단 말만들어도 복잡할거같은데..
그냥 구조체주소값을가지고잇다고만생각해도될까요? 아니면 혹시 예제소스같은거보여주실수잇나요?.. -
난슬
typedef 를 사용하는 이유는 여러가지가 있지만
구조체에 저런식으로 사용하는것은 struct를 생략하기 위함이 맞다고 보죠.
SDATA는 struct _sData 구조체 자료형이고
PSDATA는 struct _sData 구조체의 포인터 변수입니다.