이 문서는 지원되지 않는 버전의 Postgre토토 캔을위한 것입니다.
당신은에 대해 동일한 페이지를 볼 수 있습니다Postgre토토 사이트 : 문서 : 17 : 34.9. 전처리 지침버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

33.9. 전처리 지침

어떻게 수정하는 몇 가지 사전 처리기 지시문을 사용할 수 있습니다ECPG파일을 구문 분석하고 처리합니다.

33.9.1. 파일 포함

임베디드 토토 캔 프로그램에 외부 파일을 포함하려면 다음을 사용하십시오.

Exec 토토 캔 포함filename;filename>;filename";

내장 된 토토 캔 사전 처리기는 이름이라는 파일을 찾습니다filename.h, 사전 처리하고 결과 C 출력에 포함시킵니다. 따라서 포함 된 파일의 내장 된 토토 캔 문은 올바르게 처리됩니다.

theECPGPreprocessor는 다음 순서대로 여러 디렉토리에서 파일을 검색합니다.

  • 현재 디렉토리

  • /usr/local/include

  • Postgre토토 캔은 빌드 시간에 정의 된 디렉토리 포함 (예 :/usr/local/pg토토 캔/include)

  • /usr/include

하지만 언제Exec 토토 캔 포함 "filename"사용됩니다. 현재 디렉토리 만 검색됩니다.

각 디렉토리에서 전처리 기는 먼저 주어진 파일 이름을 찾아서 찾을 수없는 경우.h파일 이름으로 다시 시도하고 (지정된 파일 이름에 이미 해당 접미사가없는 한)

참고Exec 토토 캔 포함isnot동일 :

#include <filename.h>

이 파일에는 토토 캔 명령 전처리가 적용되지 않기 때문입니다. 당연히 C를 계속 사용할 수 있습니다.#include다른 헤더 파일을 포함하는 지침.

참고 :포함 파일 이름은 나머지 부분에도 불구하고Exec 토토 캔 포함명령은 일반 토토 캔 사례 감지 규칙을 따릅니다.

33.9.2. 정의 및 undef 지침

지침과 유사#defineC에서 알려진 내장 토토 캔은 비슷한 개념을 가지고 있습니다.

Exec 토토 캔 Define이름;이름 value;

그래서 당신은 이름을 정의 할 수 있습니다 :

exec 토토 캔 define hAd_feature;

그리고 상수를 정의 할 수도 있습니다 :

Exec 토토 캔 MyNumber 정의 12;

useundef이전 정의를 제거하려면 :

Exec 토토 캔 Undef MyNumber;

물론 C 버전을 계속 사용할 수 있습니다#defineand#undef내장 된 토토 캔 프로그램에서. 차이점은 정의 된 값이 평가되는 곳입니다.Exec 토토 캔 Define그런 다음ECPG사전 처리기는 정의를 평가하고 값을 대체합니다. 예를 들어 글을 쓰면 :

Exec 토토 캔 MyNumber 정의 12;

theECPG이미 대체를 수행하고 C 컴파일러가 이름이나 식별자를 볼 수 없습니다MyNumber. 사용할 수 없음#define이 경우 임베디드 토토 캔 프리 컴파일러 가이 선언을 볼 수 없기 때문에 임베디드 토토 캔 쿼리에서 사용할 수있는 상수의 경우.

33.9.3. ifdef, ifndef, else, elif 및 endif 지침

다음 지침을 사용하여 코드 섹션을 조건부로 컴파일 할 수 있습니다 :

Exec 토토 캔 IFDEF이름;

확인 a이름그리고 다음 줄을 프로세스하는 경우이름Exec 토토 캔 Define이름.

exec 토토 캔 ifndef이름;

확인 a이름그리고 다음 줄을 프로세스하는 경우이름hasnotExec 토토 캔 Define이름.

exec 토토 캔 else;

중 하나에 의해 소개 된 섹션에 대한 대체 섹션 처리를 시작합니다Exec 토토 캔 IFDEF이름또는exec 토토 캔 ifndef이름.

Exec 토토 캔 Elif이름;

checks이름대체 섹션을 시작하면이름Exec 토토 캔 Define이름.

Exec 토토 캔 endif;

대체 섹션을 종료합니다.

예 :

exec 토토 캔 ifndef tzvar;