Trong gcc
, làm thế nào tôi có thể kiểm tra những gì C định nghĩa tiền xử lý được đặt ra trong quá trình biên soạn chương trình C, cụ thể định nghĩa macro chuẩn hoặc nền tảng cụ thể nào được xác định?Macro tiền xử lý C nào đã được xác định trong gcc?
Trả lời
Macro được xác định trước phụ thuộc vào tiêu chuẩn và cách trình biên dịch triển khai.
Đối với GCC: http://gcc.gnu.org/onlinedocs/cpp/Predefined-Macros.html
Đối với Microsoft Visual Studio 8: http://msdn.microsoft.com/en-us/library/b0084kay(VS.80).aspx
Trang này Wikipedia http://en.wikipedia.org/wiki/C_preprocessor#Compiler-specific_predefined_macros danh sách như thế nào để đổ vào một số các macro được xác định trước
Chỉ cần ghi lại câu trả lời: gcc -dM -E - dev/null –
Một chương trình có thể định nghĩa một macro ở một điểm, xóa định nghĩa đó sau, và sau đó cung cấp định nghĩa khác sau đó. Do đó, tại các điểm khác nhau trong chương trình, một macro có thể có các định nghĩa khác nhau, hoặc không có định nghĩa nào cả.
Nguồn có khả năng của các macro được xác định trước cho một kết hợp cụ thể của trình biên dịch và nền tảng là Predef project tại Sourceforge. Họ đang cố gắng duy trì một danh mục của tất cả các macro được xác định trước trong tất cả các trình biên dịch C và C++ trên tất cả các nền tảng. Trong thực tế, họ có phạm vi bảo hiểm của một số công bằng của các nền tảng cho GCC, và một số các trình biên dịch khác.
Họ đã đạt được điều này thông qua sự kết hợp giữa đọc tài liệu cẩn thận, cũng như tập lệnh trình bao tìm ra những macro nào được xác định trước một cách khó khăn: nó thử chúng. Sự hiểu biết của tôi là nó thực sự cố gắng mỗi chuỗi nó có thể tìm thấy trong hình ảnh thực thi của trình biên dịch và/hoặc tiền xử lý để xem nó có một ý nghĩa được xác định trước hay không.
Họ sẽ vui vẻ thêm bất kỳ thông tin nào họ chưa có vào cơ sở dữ liệu của họ.
- 1. Macro tiền xử lý C xác định Macro
- 2. Xác định bên ngoài Macro tiền xử lý trong GLSL
- 3. C tiền xử lý xác định tên hàm được tạo
- 4. Xác định macro tiền xử lý thông qua cmake
- 5. xcodebuild - cách xác định macro tiền xử lý?
- 6. Cụm từ thông dụng trong macro tiền xử lý C
- 7. Tạo danh sách các macro tiền xử lý được xác định bởi trình biên dịch
- 8. Đếm các macro tiền xử lý
- 9. Cách xác định macro tiền xử lý C++ thông qua dòng lệnh với CMake?
- 10. Trình tiền xử lý C: mở rộng macro trong #warning
- 11. C/C++ tiền xử lý Lỗi
- 12. (Lạ?) Hành vi tiền xử lý GCC
- 13. Macro đa dòng tiền xử lý
- 14. Microsoft C++ Macro được xác định trước
- 15. Mở rộng Macro tiền xử lý trước không mong muốn
- 16. Toán tử tiền xử lý _Pragma trong Visual C++
- 17. Mở rộng macro tiền xử lý cho một chỉ thị tiền xử lý khác
- 18. Cách tạo chuỗi từ macro tiền xử lý
- 19. Biến tiền xử lý C++
- 20. với xcode, cách xác định macro tiền xử lý từ đầu ra của lệnh?
- 21. Các định nghĩa tiền xử lý nền tảng C
- 22. Có thể cho các macro tiền xử lý C chứa các chỉ thị tiền xử lý không?
- 23. Làm cách nào để xác định biểu tượng tiền xử lý trong C# visual studios
- 24. Macro tiền xử lý XCode cho cấu hình?
- 25. C tiền xử lý: xâu chuỗi macro và nhận dạng macro
- 26. Macro gcc được xác định trước cho số phiên bản của trình biên dịch là gì?
- 27. Định dạng mảng cho #define (bộ tiền xử lý C)
- 28. Xác định biến tiền xử lý cho tất cả các tệp trong thực hiện
- 29. Tách đối số trong bộ tiền xử lý C++
- 30. Gỡ lỗi bộ tiền xử lý C++
Trong gcc, hãy thực hiện 'gcc -dM -E - dev/null'. Có một chuyển đổi tương tự cho MSVC nhưng tôi không thể nhớ nó. –