공부하는 내용
#pragma 전처리기
Start!
핸드북에서는 #pragma에 대하여 섹션설정과 관련햇 설명해 놓았다. 물론 MMR과 관련하여 설명하고 있으므로 그것으로 충분할지도 모른다. 하지만 MMR선언 및 조작과 관련하여서는 앞의 글로 충분하다고 생각하며 우리가 cmd를 확인할 수는 있어도 함부로 만질일은 거의 없을 것이다. 따라서 MMR과 관련된 섹션 설정 및 cmd작성은 '제어'를 목표로 그 선행지식을 위한 본 블로그에 맞지 않기에 핸드북에 맡기기로 하고 간단하게 #pragma에 대해서 다루기로 하겠다. 만약 device driver관련한 dll, lib등에 관심있다면 그와 관련된 전문서적을 참고하는것이 나을 듯 하다.
예전에 pragma에 대해서 다음과 같이 언급하였다.
pragma는 전처리기(preprocessor)을 의미하고 C컴파일러에 지시를 내릴 때 사용하는 명령이다. pragma의 지시어는 once, comment, loop등 다양하다.
아래를 숙지하자.
1.전처리문은 다양한 종류가 있다.
2.전처리기 앞에는 #을 적는다.
3.전처리기의 긑에는 ;을 붙이지 않는다
4.한줄에 하나의 전처리기만 사용 할 수 있다.
5.하나의 전처리기를 여러 줄로 나누어 처리하려면 줄 끝에 \(역 슬래쉬)를 붙인다.
전처리기의 종류는
1.#include : 파일 처리를 위한 전처리문
2.#define, #undef : 형태의 정의를 위한 전처리문
3.#if, #ifdef, #ifndef, #else, #elif, #endif : 조건처리를 위한 전처리문
4.#pragma : 컴파일 옵션 처리를 위한 전처리문
우리는 이중 4.#pragma에 대해 '짧게' 다루고자 한다.
#pragma는 전처리기 중 하나로 컴파일러에 명령을 내린다.
컴파일러에 대해 naver 백과사전의 내용을 인용하겠다.
고급언어(ex. c)로 쓰인 프로그램이 대상 기계(컴퓨터, 임베디드 장치 등)가 직접 이해할 수 있는 목적언어(어셈블리, 기계어 등)로 바꾸는 일을 하는 프로그램이다.[.out, .obj 등을 만들어 준다]
#pragma에 대해서 몇몇 예시를 들어 간단히 설명한다.
1.#pragma once() : 컴파일을 한번만 실행
:헤더 파일에서 자주 쓰이며 여러 소스 또는 헤더에서 참조될 때 중복참조의 여지가 있을 때 자주 사용된다.
2.#pragma pack() : 메모리 공간 최적화(구조체의 정렬 방식 지정)
()안에 숫자가 들어가며 구조체의 공간을 아낄 수 있다. 자세한 설명은 : http://euro87.tistory.com/150
3.#pragma warning() : 특정 경고 설정
4.#pragma DATA_SECTION, CODE_SECTION
실제로 dsp등을 사용하면서 다룰만한 것은 once나 pack 정도일 것이다. 섹션 설정은 크게 다룰 일은 없을 것이다.
'TMS320 > Study' 카테고리의 다른 글
28XDSP의 MMR선언과 배치 방법 정리 (0) | 2014.08.11 |
---|---|
구조체 명명법, MMR 관련 헤더 파일 종류 (0) | 2014.08.11 |
28계열의 MMR선언 및 조작(1) (0) | 2014.08.11 |
MMR이란? (0) | 2014.08.08 |
cmd 파일 (0) | 2014.08.07 |