typedef
구조체를 알기전에 typedef라는 함수를 알아야합니다.
typedef란?:type define으로 타입을 선언한다. 정도의 뜻을 가지고 있습니다.
예제↓
1 2 3 4 5 | #include<stdio.h> int main(void) typedef int i; i num = 0; } | cs |
위와같이 쓸수있습니다.
결과는 int를 i로 바꾸고 i = int로바뀌어 num의 자료형은 int가 됩니다.
구조체
변수나 데이터들을 묶을때 사용하게됩니다.
예제↓
1 2 3 4 5 | struct name{ char name; char name[2]; char name3; }; | cs |
위와같이 선언하면 바이트수는 4바이트가 됩니다.
그리고 선언은 struct 이름{ }; 과같이 할수있습니다.
만약 사용하실때는 이름.변수 이렇게 써서 사용할수 있습니다.
typedef와 구조체 함께 사용
위와 같이 두가지 방법을 써서 사용할수있습니다.
구조체를 자료형으로 쓰기
1 2 3 4 5 6 7 8 9 10 11 12 | #include<stdio.h> typedef struct name{ char name; char name[2]; char name3; }Name; int main(void){ Name n1; Name n2; n2.name = 'n'; // n2라는 구조체가 생긴것과 같다. n1.name = 'm'; // n1이라는 구조체가 생긴것과같다. } | cs |
위와같이 쓸수있습니다.
구조체 포인터
1 2 3 4 5 6 7 8 9 10 11 12 13 | #include<stdio.h> typedef struct name{ char name; char name[2]; char name3; }Name; int main(void){ Name *p; Name data; p = &data; (*p).name = 'e'; //data의 name변수에 e를 넣었다.(p ->name = 'e';와같습니다.) } | cs |
위와같이 포인터를 구조체에서 활용가능합니다.
구조체 배열
소스코드↓
1 2 3 4 5 6 7 8 9 | #include<stdio.h> typedef struct name{ char name; int num; char name3; }Name; int main(void){ Name man[2] = {'e', 3, 'p', 'a', 5, 'b'}; } | cs |
위와같이 쓸수있습니다.
그럼여기까지 블로그포스팅을 마치도록 하겠습니다.
구조체 -끝-