typedef
- 기존 자료형에 별명을 붙인다
- typedef 자료형 이름 순으로 선언한다
주의 배열에 사용하면 선언부에만 대괄호를 쓰고, 사용할 때는 대괄호를 쓰지 않는다
주의 포인터를 만들때 선언부에만 *를 쓰고, 사용할 때는 *를 쓰지 않는다
ex) typedef int Int32;
typedef int Pair[2];
Pair point = {3, 4}; int point[2] = {3, 4};로 인식한다
구조체
- 중괄호 내부의 요소들을 갖춘 자료형이다
- 중괄호로 초기값을 설정해 줄 수 있다
- 주로 전역변수로 선언해준다
- 구조체의 메모리 크기는 중괄호 안 자료형들의 메모리 크기의 합과 같다
주의 포인터를 사용할 때 괄호에 유의해야 한다 예제에서 확인
주의 구조체도 자료형이기 때문에 call-by-value에 유의해야 한다
ex) struct Point { typedef struct {int x, y;} Point;와 같다
int x, y;
void moveRight() {x++;}
int periphery() {return 2 * x + 2 * y;}
};
Point p = {1, 2};
Point *q = &p;
p.x = 3;
p.y = 4;
printf("%d\n", (*q).x); *q.x는 *(q.x)와 동일하며 x는 포인터가 아니기 때문에 사용이 안된다
printf("%d\n", q->y); q->y와 (*q).y는 동일한 표현이다
'Study > C C++' 카테고리의 다른 글
[두들낙서] C++ 스타일 문법 (0) | 2021.03.03 |
---|---|
[두들낙서] 상수 (0) | 2021.03.01 |
[두들낙서] 함수 (0) | 2021.03.01 |
[두들낙서] 포인터 (0) | 2021.03.01 |
[두들낙서] 배열 (0) | 2021.02.28 |