34.9. 전처리기 지시문#

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

34.9.1. 파일 포함#

외부 파일을 Embedded 스포츠 토토 결과 프로그램에 포함하려면 다음을 사용하십시오:

EXEC 스포츠 토토 결과 포함파일 이름;
EXEC 스포츠 토토 결과 포함 <파일 이름;
EXEC 스포츠 토토 결과에는 "이 포함됩니다.파일 이름";

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

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

  • 현재 디렉토리
  • /usr/local/include
  • 빌드 시 정의된 Postgre스포츠 토토 결과 포함 디렉터리(예:/usr/local/pg스포츠 토토 결과/include)
  • /usr/include

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

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

참고EXEC 스포츠 토토 결과 포함is아님동일:

#include <파일 이름.h

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

참고

포함 파일 이름은 대소문자를 구분합니다.EXEC 스포츠 토토 결과 포함명령은 일반적인 스포츠 토토 결과 대소문자 구분 규칙을 따릅니다.

34.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 스포츠 토토 결과 쿼리에서 사용할 상수에 대해.

여러 개의 입력 파일 이름이 다음에 있는 경우ecpg전처리기의 명령줄, 다음의 효과EXEC 스포츠 토토 결과 정의그리고EXEC 스포츠 토토 결과 UNDEF파일 간에 전달되지 않음: 각 파일은 다음에서 정의한 기호로만 시작합니다.-D명령줄을 켭니다.

34.9.3. ifdef, ifndef, elif, else 및 endif 지시어#

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

EXEC 스포츠 토토 결과 ifdef이름; #

a를 확인합니다이름다음의 경우 후속 라인을 처리합니다.이름다음을 통해 정의되었습니다.EXEC 스포츠 토토 결과 정의이름.

EXEC 스포츠 토토 결과 ifndef이름; #

a를 확인합니다이름다음의 경우 후속 라인을 처리합니다.이름있음아님다음을 통해 정의됨EXEC 스포츠 토토 결과 정의이름.

EXEC 스포츠 토토 결과 엘리프이름; #

다음에 선택적 대체 섹션을 시작합니다.EXEC 스포츠 토토 결과 ifdef이름또는EXEC 스포츠 토토 결과 ifndef이름지시어. 임의의 수엘리프섹션이 나타날 수 있습니다. 다음 줄엘리프다음의 경우 처리됩니다이름정의되었습니다그리고동일한 이전 섹션 없음ifdef/ifndef...endif구조물이 처리되었습니다.

EXEC 스포츠 토토 결과 기타; #

다음에 선택적인 최종 대체 섹션을 시작합니다.EXEC 스포츠 토토 결과 ifdef이름또는EXEC 스포츠 토토 결과 ifndef이름지시문. 동일한 이전 섹션이 없으면 후속 라인이 처리됩니다.ifdef/ifndef...endif구조물이 처리되었습니다.

EXEC 스포츠 토토 결과 endif; #

종료ifdef/ifndef...endif구조물. 후속 라인은 정상적으로 처리됩니다.

ifdef/ifndef...endif구조물은 최대 127레벨 깊이까지 중첩될 수 있습니다.

이 예는 정확히 세 가지 중 하나를 컴파일합니다.시간대 설정명령:

EXEC 스포츠 토토 결과 ifdef TZVAR;
EXEC 스포츠 토토 결과은 시간대를 TZVAR로 설정합니다.
EXEC 스포츠 토토 결과 elif TZNAME;
EXEC 스포츠 토토 결과은 시간대를 TZNAME으로 설정합니다.
EXEC 스포츠 토토 결과 기타;
EXEC 스포츠 토토 결과은 시간대를 'GMT'로 설정합니다.
EXEC 스포츠 토토 결과 endif;

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.