이 문서는 지원되지 않는 Postgre토토 캔 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.Postgre토토 사이트 : 문서 : 17 : 34.9. 전처리 지침버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

33.9. 전처리기 지시문

방법을 수정하는 여러 전처리기 지시문을 사용할 수 있습니다.ecpg전처리기가 파일을 구문 분석하고 처리합니다.

33.9.1. 파일 포함

Embedded 토토 캔 프로그램에 외부 파일을 포함하려면 다음을 사용하세요:

EXEC 토토 캔 포함파일 이름;
EXEC 토토 캔 포함 <파일 이름;
EXEC 토토 캔에는 "이 포함됩니다.파일 이름";

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

ecpg전처리기는 다음 순서로 여러 디렉토리에서 파일을 검색합니다.

  • 현재 디렉토리

  • /usr/local/include

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

  • /usr/포함

그러나 언제EXEC 토토 캔 INCLUDE "파일 이름"을 사용하면 현재 디렉토리만 검색됩니다.

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

참고EXEC 토토 캔 포함is아님동일:

#include <파일 이름.h

이 파일은 토토 캔 명령 전처리의 대상이 아니기 때문입니다. 당연히 C를 계속 사용할 수 있습니다.#include다른 헤더 파일을 포함하는 지시문.

참고:포함 파일 이름은 대소문자를 구분합니다.EXEC 토토 캔 포함명령은 일반적인 토토 캔 대소문자 구분 규칙을 따릅니다.

33.9.2. 정의 및 undef 지시문

지시문과 유사#정의C에서 알려진 Embedded 토토 캔에도 비슷한 개념이 있습니다.

EXEC 토토 캔 정의이름;
EXEC 토토 캔 정의이름 ;

따라서 이름을 정의할 수 있습니다:

EXEC 토토 캔 DEFINE HAVE_FEATURE;

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

EXEC 토토 캔 정의 내 번호 12;
EXEC 토토 캔 정의 MYSTRING 'abc';

사용undef이전 정의를 제거하려면:

EXEC 토토 캔 UNDEF MYNUMBER;

물론 C 버전을 계속 사용할 수 있습니다.#정의그리고#undefEmbedded 토토 캔 프로그램에서. 차이점은 정의된 값이 평가되는 위치입니다. 사용하는 경우EXEC 토토 캔 정의그러면ecpg전처리기는 정의를 평가하고 값을 대체합니다. 예를 들어 다음과 같이 쓴다면:

EXEC 토토 캔 정의 내 번호 12;
...
EXEC 토토 캔 업데이트 Tbl SET col = MYNUMBER;

그런 다음ecpg이미 대체를 수행할 것이며 C 컴파일러는 어떤 이름이나 식별자도 볼 수 없습니다.마이넘버. 사용할 수 없습니다.#정의이 경우 Embedded 토토 캔 사전 컴파일러가 이 선언을 볼 수 없기 때문에 Embedded 토토 캔 쿼리에서 사용할 상수에 대해.

33.9.3. ifdef, ifndef, else, elif 및 endif 지시문

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

EXEC 토토 캔 ifdef이름;

a를 확인합니다이름다음의 경우 후속 라인을 처리합니다.이름다음으로 생성됨EXEC 토토 캔 정의이름.

EXEC 토토 캔 ifndef이름;

a를 확인합니다이름다음의 경우 후속 라인을 처리합니다.이름있음아님다음으로 생성됨EXEC 토토 캔 정의이름.

EXEC 토토 캔 기타;

둘 중 하나에 의해 도입된 섹션에 대한 대체 섹션 처리를 시작합니다.EXEC 토토 캔 ifdef이름또는EXEC 토토 캔 ifndef이름.

EXEC 토토 캔 엘리프이름;

체크이름다음의 경우 대체 섹션을 시작합니다이름다음으로 생성되었습니다EXEC 토토 캔 정의이름.

EXEC 토토 캔 endif;

대체 섹션을 종료합니다.

예:

EXEC 토토 캔 ifndef TZVAR;
EXEC 토토 캔은 시간대를 'GMT'로 설정합니다.
EXEC 토토 캔 elif TZNAME;
EXEC 토토 캔은 시간대를 TZNAME으로 설정합니다.
EXEC 토토 캔 기타;
EXEC 토토 캔은 시간대를 TZVAR로 설정합니다.
EXEC 토토 캔 endif;