일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- TensorFlow
- c++
- 딥러닝 스터디
- object detection
- 케라스 정리
- 모두의 딥러닝 예제
- 해리스 코너 검출
- pytorch
- 파이토치 강의 정리
- 팀프로젝트
- tensorflow 예제
- c++공부
- 골빈해커
- 딥러닝
- C언어 공부
- Pytorch Lecture
- 모두의 딥러닝
- c언어
- 파이토치 김성훈 교수님 강의 정리
- 파이토치
- 미디언 필터링
- c언어 정리
- pytorch zero to all
- 딥러닝 공부
- 컴퓨터 비전
- 김성훈 교수님 PyTorch
- matlab 영상처리
- 영상처리
- MFC 프로그래밍
- 가우시안 필터링
- Today
- Total
ComputerVision Jack
[C프로그래밍 Chapter17] 본문
[구조체 정의 typedef선언]
typedef선언
기존에 존재하는 자료형 이름에 새로운 이름을 부여하는 것.
typedef로 정의되는 자료형의 이름은 대문자로 시작하는 것이 관례이다.
typedef int INT;
#기존 int자료형 사용에 대해 INT라고 표기가 가능해진다.
구조체와 typedef
struct sample{
int x;
int y;
};
기존 구조체 변수 선언
struct sample sp;
typedef 구조체 변수 선언
typedef struct sample Sample;
typedef struct sample{
int x;
int y;
} Sample;
#처음 구조체를 정의할 때, typedef로 묶어도 된다.
[구조체 변수 전달과 반환]
함수의 인자로 구조체 변수가 전달될 수 있다.
또한 구조체 포인터 변수를 사용하여 Call-by-reference 형태의 구성을 사용할 수 있다.
구조체 변수를 대상으로 가능한 연산
주소값 반환을 목적으로 하는 &연산
구조체 크기 반환하는 sizeof연산
[중첩 구조체]
구조체 정의 이유
구조체를 통해서 연관 있는 데이터를 하나로 묶을 수 있는 자료형을 정의하면,
데이터의 표현 및 관리가 편해지고 합리적으로 코드를 작성할 수 있다.
배열이나 포인터 변수가 구조체 내부에 포함될 수 있듯 다른 구조체 정의 또한 구조체 내부에 포함 될 수 있다.
[공용체(Union Type)]
공용체(Union)
공용체는 union이라는 키워드를 사용하여 정의한다.
구조체 sample정의
typedef struct sp{
int x;
int y;
double z;
} Sample;
공용체 sample정의
typedef union sp{
int x;
int y;
double z;
} Sample;
sizeof로 각각 구조체와 공용체의 크기를 확인하면
구조체 : 16 출력
공용체 : 8 출력
공용체는 멤버들 간에 메모리 공간을 공유하고 있다.
따라서 하나의 메모리 공간을 둘 이상의 방식으로 접근이 가능하다.
[열거형(Enumerated Type)]
열거형(Enumerated)
열거형도 자료형을 정의하는 방법으로 사용된다
변수 value에 저장될 값들을 나열
enum value{
num1 = 1, num2 = 2, num3 = 3
};
우리가 사용할 value변수에는 num1, num2, num3을 값을 사용하여 변수 value를 초기화할 수 있다.
또한 enum을 추가하여 열거형 변수를 선언해야 한다.
enum value v;
열거형 상수 결정 방식
열거형에 상수 값을 명시하지 않으면 0부터 시작해서 1씩 증가하는 형태로 정의된다.
열거형의 유용성
열거형의 유용함은 둘 이상의 연관이 있는 이름을 상수로 선언함으로써 프로그램의 가독성을 높인다.
'Programming Language > C Programming' 카테고리의 다른 글
[C프로그래밍 Chapter19] (0) | 2020.02.12 |
---|---|
[C프로그래밍 Chapter18] (0) | 2020.02.11 |
[C프로그래밍 Chapter16] (0) | 2020.02.06 |
[C프로그래밍 Chapter15] (0) | 2020.02.05 |
[C프로그래밍 Chapter14] (0) | 2020.02.04 |