2025 년 7 월 17 일 : | Postgre윈 토토 18 베타 2 릴리스!

36.9. 전처리 지침#

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

36.9.1. 파일 포함#

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

Exec 윈 토토 포함filename;
Exec 윈 토토 포함 <filename;
exec 윈 토토 포함 "filename";

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

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

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

하지만 언제exec 윈 토토 포함 "filename"가 사용되며 현재 디렉토리 만 검색됩니다.

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

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

#include <filename.h

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

Note

포함 파일 이름은 나머지에도 불구하고 케이스에 민감합니다Exec 윈 토토 포함명령은 일반 윈 토토 사례 감지 규칙을 따릅니다.

36.9.2. 정의 및 undef 지침#

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

Exec 윈 토토 Define이름;
Exec 윈 토토 Define이름 value;

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

exec 윈 토토 define hAd_feature;

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

Exec 윈 토토 MyNumber 정의 12;
Exec 윈 토토 MyString 'ABC'를 정의합니다.

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

Exec 윈 토토 Undef MyNumber;

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

Exec 윈 토토 MyNumber 정의 12;
...
Exec 윈 토토 업데이트 TBL SET COL = MYNUMBER;

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

여러 입력 파일이 |ECPG전처리 명령 줄,의 효과Exec 윈 토토 DefineandExec 윈 토토 Undef파일을 가로 질러 휴대하지 마십시오 : 각 파일은에 의해 정의 된 기호만으로 시작합니다-d명령 줄을 켜는 스위치

36.9.3. ifdef, ifndef, Elif, Elif, Endif Directives#

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

Exec 윈 토토 IFDEF이름; #

확인 a이름그리고 다음 선을 처리하는 경우이름Exec 윈 토토 Define이름.

Exec 윈 토토 Ifndef이름; #

확인 a이름그리고 다음 선을 처리하는 경우이름hasnotExec 윈 토토 Define이름.

Exec 윈 토토 Elif이름; #

이후에 선택적인 대체 섹션을 시작합니다Exec 윈 토토 IFDEF이름또는Exec 윈 토토 Ifndef이름지침. 모든 수elif섹션이 나타날 수 있습니다. 다음 줄elif처리됩니다이름정의되었습니다and동일한 이전 섹션 없음ifdef/ifndef...endif구성이 처리되었습니다.

exec 윈 토토 else; #

AN 이후 선택 사항, 최종 대체 섹션을 시작합니다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 윈 토토 TIGNAME TIMEZONE를 설정합니다.
Exec 윈 토토 else;
Exec 윈 토토 Timezone을 'GMT'로 설정합니다.
Exec 윈 토토 endif;

정정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면