Tôi muốn sử dụng chỉ thị #include
với tên tệp được chuyển dưới dạng macro được xác định bên ngoài.Thay thế macro trong #include chỉ thị
Ví dụ:
#include #FILE".h"
nơi FILE
sẽ được định nghĩa là chuỗi MyFile
(không có dấu ngoặc kép), kết quả là
#include "MyFile.h"
Các stringizing điều hành # không thể được sử dụng ở đây là biểu tượng FILE
không phải là một cuộc tranh luận vĩ mô. Tôi đã thử các cách tiếp cận khác, vô ích.
Bạn có thấy giải pháp không?
gcc cung cấp một số chức năng * bên ngoài * bao gồm các tệp http://stackoverflow.com/questions/3387453/include-header-files-using-command-line-option. Điều này có thể giúp bạn. –
Thú vị. Tôi đang sử dụng cả gcc và MSVC và chỉ thị #include của tôi có thể không ở vị trí đầu tiên. –
Không thể thực hiện được, vì việc ghép nối chuỗi tiếp giáp bằng chữ không được thực hiện cho đến sau giai đoạn tiền xử lý, ví dụ: '" MyFile "". H "' sẽ không phải là tên bao gồm hợp lệ. Bạn không thể chỉ định nghĩa 'FILE' làm tên tiêu đề thực tế được bao gồm, ví dụ: '-DFILE =" MyFile.h "'? –