Tôi có một tệp tiêu đề chứa
#define PROTOTYPE(s) s
quan điểm đó là gì? Có vẻ như nó sẽ chỉ thay thế đầu vào bằng chính nó.
Có TẤN chỉ thị khác xung quanh nó, nhưng chỉ có một mà dường như có bất kỳ mang chỉ cần kiểm tra nếu nó được định nghĩa: #ifndef PROTOTYPE
. Tôi tìm thấy một số nơi trong các tập tin tiêu đề HDF4 rằng làm điều này: #define PROTOTYPE
. Vì vậy, không ai trong số đó thực sự làm rõ câu hỏi của tôi. Vẫn có vẻ khá vô dụng.
Đây là cách nó được sử dụng:
CS_RETCODE clientmsg_callback PROTOTYPE((
CS_CONTEXT * context,
CS_CONNECTION *connection,
CS_CLIENTMSG *clientmsg));
Đây là một phần của dự án sử dụng Sybase Open Client. clientmsg_callback sau đó được sử dụng tại đây:
ct_callback(context, NULL, CS_SET, CS_CLIENTMSG_CB,
(CS_VOID *)clientmsg_callback);
Tôi sẽ rời khỏi một chương trình mẫu từ đây:
clientmsg_callback được triển khai sau đó. Tôi nghĩ rằng mẫu ban đầu được viết bằng C trong tâm trí, thay vì C ++. Có lẽ điều đó có liên quan đến nó?
#if
/#ifdef
/#ifndef
/#else
chỉ thị, nơi nó có thể có một định nghĩa khác nhau để thay thế? Nó có thể tạo ra sự khác biệt khi được sử dụng trong các macro khác, đặc biệt là gần#
hoặc##
. Nó có thể chỉ dành cho một phong cách bình luận. Không đủ ngữ cảnh để thực sự trả lời.