일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- matlab 영상처리
- 가우시안 필터링
- 영상처리
- 모두의 딥러닝
- 딥러닝 스터디
- pytorch zero to all
- 파이토치
- c언어 정리
- object detection
- 파이토치 강의 정리
- c언어
- pytorch
- Pytorch Lecture
- 김성훈 교수님 PyTorch
- c++
- tensorflow 예제
- MFC 프로그래밍
- 딥러닝 공부
- 딥러닝
- C언어 공부
- 해리스 코너 검출
- 컴퓨터 비전
- c++공부
- 파이토치 김성훈 교수님 강의 정리
- 케라스 정리
- TensorFlow
- 미디언 필터링
- 팀프로젝트
- 골빈해커
- 모두의 딥러닝 예제
Archives
- Today
- Total
ComputerVision Jack
[C프로그래밍 Chapter20] 본문
반응형
[선행 처리기와 매크로]
선행처리
컴파일 이전에 선행처리 과정이 존재한다.
삽입해 놓은 선행처리 명령대로 소스코드의 일부를 수정한다. (수정 : 단순 치환 의미)
- 선행 처리 명령문은 #으로 시작한다.
- 선행 처리기에 의해 처리되는 문장은 끝에 ; 붙이지 않는다.
#define문
#define PI 3.1415 인 경우에
#define은 지시자를 지칭한다. 지시자는 매크로를 마지막에 등장하는 매크로 몸체로 치환하라는 의미를 갖는다.
PI는 매크로(매크로 상수)에 해당하고 3.1415는 매크로 몸체를 의미한다.
이러한 매크로는 매개 변수가 존재하는 형태로 정의할 수 있다. (함수와 유사한 매크로)
#define SQUARE(X) X * X
하지만 사칙연산에 대해 오류가 발생하지 않게 ( ) 를 이용하여 묶어주어야 한다.
기본적으로 매크로는 한줄에 걸쳐서 표기한다.
매크로 함수의 장점
- 매크로 함수는 일반 함수에 비해 실행 속도가 빠르다.
- 자료형에 따라서 별도로 함수를 정의하지 않아도 된다.
매크로 함수의 단점
- 정의하기 어렵다.
- 디버깅하기 쉽지 않다.
[조건부 컴파일 매크로]
#if ... ... #endif
조건부 코드 삽입을 위한 지시자.
매크로가 참이냐 거짓이냐를 기준으로 동작하게 된다. 프로그램의 흐름을 나눈다.
#ifdef ... ... #endif
#if #endif와 비슷하지만, 매크로가 정의 되 었는지 아닌지를 기준으로 동작한다.
#ifndef ... ... #endif
매크로가 정의되어 있지 않다면의 의미를 기준으로 동작한다.
헤더파일의 중복 포함을 막기 위해 주로 사용된다.
#else
[매개변수의 결합과 문자열화]
문자열 내에서 매크로의 매개변수 치환이 발생하지 않는다.
따라서 #연산자를 사용하여 치환을 진행할 수 있다.
##연산자
매크로 함수의 전달인자를 다른 대상과 이어줄 때, 사용한다.
반응형
'Programming Language > C Programming' 카테고리의 다른 글
[C프로그래밍 Chapter19] (0) | 2020.02.12 |
---|---|
[C프로그래밍 Chapter18] (0) | 2020.02.11 |
[C프로그래밍 Chapter17] (0) | 2020.02.10 |
[C프로그래밍 Chapter16] (0) | 2020.02.06 |
[C프로그래밍 Chapter15] (0) | 2020.02.05 |
Comments