Tôi đang cố gắng tìm tất cả các địa điểm nơi #include
được đặt bên trong extern
C khối. Có thể kiểm tra điều này bằng cách sử dụng bộ tiền xử lý không? Tôi muốn thêm một cái gì đó như thế này vào các tệp tiêu đề của tôi:Cách phát hiện ra rằng "C" bên ngoài có hiệu lực
#ifdef EXTERN_C_IS_IN_EFFECT
#error File included from extern "C" block!
#endif
Tôi cũng đang tìm cách khác để không biên soạn trong trường hợp này, ví dụ: sử dụng một số thuộc tính đặc biệt. Tôi đang sử dụng gcc 4.4.7.
tôi định nghĩa sau vĩ mô và sau đó sử dụng nó trong tất cả các tiêu đề mà cần bảo vệ chống lại đưa vào extern
C khối:
#define ASSERT_NO_EXTERN_C void assert_no_extern_c(int); void assert_no_extern_c(double);
'extern' không được bộ tiền xử lý nhận thấy. –
Nếu bạn cần điều này để tìm tất cả các tệp mà bạn có khóa "C" bên ngoài, bạn có thể thực hiện dự án mã của mình với tất cả các tệp để tìm kiếm IDE yêu thích của bạn và thực hiện "Tìm kiếm trong toàn bộ Dự án/Giải pháp/..." – Incubbus
@ πάνταῥεῖ Hm. '#define extern static'? –