Tôi đang cố gắng chuyển một số mã C tương đối hiện đại sang trình biên dịch cũ hơn.Cuộn cảm trình biên dịch C cũ trên #ifndef #define
trình biên dịch này (DICE), có vẻ như, cuộn cảm trên tập tin tiêu đề đầu tiên và xuất hiện đầu tiên của thành ngữ này:
#ifndef SOMETHING
#define SOMETHING
...
#endif /* SOMETHING */
nó chết trên dòng thứ hai trong phần đầu với: DCPP: "../../code/someheader.h" L:2 C:0 Error:39 Syntax Error
Thay đổi thành #define SOMETHING 1
không có sự khác biệt. Vì vậy, tôi thực sự có hai câu hỏi, tôi có sử dụng DICE với tùy chọn sai hay một cái gì đó, hoặc các lập trình viên C có sử dụng một số thành ngữ khác bằng ifndef-xác định trở lại trong những ngày cũ không? Không.
Tài liệu tham khảo:
- DICE Wikipedia Entry
- Original source code, chạy trên Unix
- Hơi cập nhật Amiga version
- Tác giả của DICE, Matt Dillon, tiếp tục sản xuất DragonFlyBSD
Nếu đó là [trình biên dịch DICE] này (http://www.obviously.com/amiga/) thì chắc chắn được sử dụng để làm việc với các nhân viên bảo vệ điển hình. – tinman
Ấn bản đầu tiên của tôi (ấn bản thứ 21) K & R mô tả #ifndef trên trang 208, do đó, nó đã được khoảng một thời gian. –
Ooh, câu hỏi đó mang lại những kỷ niệm! Tôi thậm chí trả tiền cho phiên bản phần mềm chia sẻ. :) Bên cạnh đó, nó sẽ làm việc, nếu không tất cả các tiêu đề hệ thống sẽ thất bại là tốt. –