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
typedef struct name{
    char name;
    char name[2];
    char name3;
}Name;


cs

1
2
3
4
5
6
struct name{
    char name;
    char name[2];
    char name3;
};
typedef struct name Name;
cs

위와 같이 두가지 방법을 써서 사용할수있습니다.


구조체를 자료형으로 쓰기

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

위와같이 쓸수있습니다.


그럼여기까지 블로그포스팅을 마치도록 하겠습니다.

구조체 -끝- 



'C언어' 카테고리의 다른 글

Beep  (0) 2018.01.17
문자열관련 함수  (0) 2018.01.12
포인터  (0) 2018.01.12
배열  (0) 2018.01.12
함수  (0) 2018.01.12

+ Recent posts