Tôi hiện đang nghiên cứu bài kiểm tra cuối khóa của khóa học CS và tôi đã gặp phải vấn đề nhỏ (có thể là lớn?) Liên quan đến cú pháp của C++ #ifndef.#ifndef cú pháp cho bao gồm bảo vệ trong C++
Tôi đã nhìn vào cú pháp cho #infndef khi sử dụng nó như là một bảo vệ #include, và hầu hết trên web dường như nói:
#ifndef HEADER_H
#define "header.h"
...
#endif
Nhưng slide hướng dẫn lớp học của tôi hiển thị ví dụ như:
#ifndef __HEADER_H__
#define "header.h"
...
#endif
Tôi đã tự hỏi điều gì (nếu có) sự khác biệt giữa hai người. Bài kiểm tra rất có thể sẽ yêu cầu tôi viết một bảo vệ bao gồm, và tôi biết sự khôn ngoan thông thường là chỉ cần đi với những gì các giáo sư/giảng viên nói, nhưng nếu có một sự khác biệt trong quá trình biên dịch tôi muốn biết.
Xem [tại đây] (http://stackoverflow.com/questions/228783) để thảo luận về các quy tắc mà gia sư của bạn đang vi phạm và [ở đây] (http://stackoverflow.com/questions/3345159) cho một Ví dụ những gì có thể đi sai nếu bạn phá vỡ chúng. Ngoài ra, bao gồm cả bảo vệ đi * bên trong * tiêu đề. –
Vì nó là, mã inculded không có ý nghĩa: bạn không thể '# define' một chuỗi chữ. Ý của bạn có phải là '#include 'header.h" '(từ gốc) hay' #define HEADER_H' (những gì thường nằm trong phần đầu của phần đầu)? – Attila