Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong các phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

kèo bóng đá pháp33.9. Chỉ thị tiền xử lý

Một số chỉ thị tiền xử lý có sẵn để sửa đổi cáchECPGPhân tích tiền xử lý và xử lý một tệp.

33.9.1. Bao gồm các tệp

Để đưa một tệp bên ngoài vào chương trình kèo bóng đá pháp nhúng của bạn, sử dụng:

EXEC kèo bóng đá pháp bao gồmFileName;
Exec kèo bóng đá pháp bao gồm <FileName;
EXEC kèo bóng đá pháp bao gồm "FileName";

Bộ tiền xử lý kèo bóng đá pháp nhúng sẽ tìm kiếm một tệp có tênFileName.h, tiền xử lý và bao gồm nó trong đầu ra C kết quả. Do đó, các câu lệnh kèo bóng đá pháp nhúng trong tệp đi kèm được xử lý chính xác.

TheECPGBộ tiền xử lý sẽ tìm kiếm một tệp tại một số thư mục theo thứ tự sau:

  • Thư mục hiện tại

  • /usr/local/bao gồm

  • PostgreSQL bao gồm thư mục, được xác định tại thời gian xây dựng (ví dụ:/usr/local/pgsql/bao gồm)

  • /usr/bao gồm

Nhưng khiEXEC kèo bóng đá pháp bao gồm "FileName"được sử dụng, chỉ tìm kiếm thư mục hiện tại.

Trong mỗi thư mục, bộ tiền xử lý trước tiên sẽ tìm tên tệp như đã đưa ra và nếu không tìm thấy sẽ nối tiếp.hđến tên tệp và thử lại (trừ khi tên tệp được chỉ định đã có hậu tố đó).

Lưu ý rằngEXEC kèo bóng đá pháp bao gồmkhônggiống như:

#include <FileName.h

Bởi vì tệp này sẽ không phải chịu sự tiền xử của lệnh kèo bóng đá pháp. Đương nhiên, bạn có thể tiếp tục sử dụng c#includeChỉ thị bao gồm các tệp tiêu đề khác.

Lưu ý:Tên tệp bao gồm nhạy cảm với trường hợp, mặc dù phần còn lại củaEXEC kèo bóng đá pháp bao gồmLệnh tuân theo các quy tắc nhạy cảm trường hợp kèo bóng đá pháp thông thường.

33.9.2. Các chỉ thị xác định và hoàn tác

Tương tự như Chỉ thị#Defineđược biết đến từ C, kèo bóng đá pháp nhúng có khái niệm tương tự:

exec kèo bóng đá pháp xác địnhtên;
Exec kèo bóng đá pháp xác địnhtên giá trị;

Vì vậy, bạn có thể xác định tên:

exec kèo bóng đá pháp xác định have_feature;

Và bạn cũng có thể xác định các hằng số:

EXEC kèo bóng đá pháp Xác định Mynumber 12;
Exec kèo bóng đá pháp xác định myString 'abc';

Sử dụngUndefĐể xóa định nghĩa trước:

EXEC kèo bóng đá pháp Undef Mynumber;

Tất nhiên bạn có thể tiếp tục sử dụng các phiên bản C#define#undefTrong chương trình kèo bóng đá pháp nhúng của bạn. Sự khác biệt là nơi các giá trị xác định của bạn được đánh giá. Nếu bạn sử dụngEXEC kèo bóng đá pháp xác địnhSau đó làECPGBộ tiền xử lý đánh giá các định nghĩa và thay thế các giá trị. Ví dụ: nếu bạn viết:

EXEC kèo bóng đá pháp Xác định Mynumber 12;
...
EXEC kèo bóng đá pháp Cập nhật tbl set col = mynumber;

sau đóECPGSẽ thay thế và trình biên dịch C của bạn sẽ không bao giờ thấy bất kỳ tên hoặc định danh nàoMynumber. Lưu ý rằng bạn không thể sử dụng#define13562_13717

33.9.3. IFDEF, IFNDEF, OTE, ELIF và ENDIF Chỉ thị

Bạn có thể sử dụng các chỉ thị sau để biên dịch các phần mã có điều kiện:

EXEC kèo bóng đá pháp IFDEFtên;

Kiểm tra Atênvà xử lý các dòng tiếp theo nếutênđã được tạo bằngEXEC kèo bóng đá pháp xác địnhtên.

EXEC kèo bóng đá pháp IFNDEFtên;

Kiểm tra Atênvà xử lý các dòng tiếp theo nếutênkhôngĐã được tạo bằngEXEC kèo bóng đá pháp xác địnhtên.

EXEC kèo bóng đá pháp khác;

Bắt đầu xử lý một phần thay thế cho một phần được giới thiệu bởiEXEC kèo bóng đá pháp IFDEFtênhoặcEXEC kèo bóng đá pháp IFNDEFtên.

EXEC kèo bóng đá pháp ELIFtên;

Kiểm tratênvà bắt đầu một phần thay thế nếutênđã được tạo bằngEXEC kèo bóng đá pháp xác địnhtên.

EXEC kèo bóng đá pháp endif;

Kết thúc một phần thay thế.

Ví dụ:

EXEC kèo bóng đá pháp IFNDEF TZVAR;
EXEC kèo bóng đá pháp đặt thời gian thành 'gmt';
Exec kèo bóng đá pháp elif tzname;
EXEC kèo bóng đá pháp đặt thời gian thành tzname;
EXEC kèo bóng đá pháp khác;
EXEC kèo bóng đá pháp đặt thời gian thành tzvar;
Exec kèo bóng đá pháp endif;