Tôi đã thấy mã như thế này thường khi bắt đầu các tệp tiêu đề:
#ifndef HEADERFILE_H
#define HEADERFILE_H
Và ở cuối tập tin là
#endif
mục đích của việc này là gì?
#pragma
: nó kích hoạt một tính năng dành riêng cho trình biên dịch. Mặc dù #pragma once
đang rất được hỗ trợ rộng rãi, đó là không chuẩn.
info cpp
hoặc xem tại đây ) nói rằng "nó không được công nhận bởi tất cả các bộ tiền xử lý, vì vậy bạn không thể dựa vào nó trong một chương trình di động." Và GNU cpp tối ưu hóa #ifndef
thành ngữ phổ biến và di động để nó hiệu quả như #pragma once
.
#ifndef HEADERFILE_H
có thể vi phạm không gian tên của việc thực hiện tên tiêu đề xảy ra để bắt đầu E
; định danh bắt đầu bằng E
và một chữ số hoặc chữ in hoa được dành riêng cho <errno.h>
. Tôi đề nghị #ifndef H_HEADERFILE
.