ฉันได้เห็นรหัสเช่นนี้มักจะเริ่มต้นของไฟล์ส่วนหัว:
#ifndef HEADERFILE_H
#define HEADERFILE_H
และในตอนท้ายของไฟล์ก็คือ
#endif
จุดประสงค์ของสิ่งนี้คืออะไร?
#pragma
คืออะไร: มันเปิดใช้งานคุณลักษณะเฉพาะของคอมไพเลอร์ แม้ว่า#pragma once
จะมากได้รับการสนับสนุนอย่างกว้างขวางก็ไม่เป็นมาตรฐาน
info cpp
หรือดูที่นี่ ) กล่าวว่า "มันไม่ได้รับการยอมรับจากผู้ประมวลผลล่วงหน้าทั้งหมดดังนั้นคุณจึงไม่สามารถเชื่อถือได้ในโปรแกรมพกพา" และ GNU CPP เพิ่มประสิทธิภาพทั่วไปและแบบพกพาสำนวนดังนั้นมันจึงเป็นที่มีประสิทธิภาพ#ifndef
#pragma once
#ifndef HEADERFILE_H
สามารถละเมิด namespace การดำเนินงานของส่วนหัวชื่อที่เกิดขึ้นจะเริ่มต้นด้วยE
; ตัวบ่งชี้ที่เริ่มต้นด้วยและหลักหรืออักษรตัวพิมพ์ใหญ่จะถูกสงวนไว้เพื่อE
ผมขอแนะนำให้<errno.h>
#ifndef H_HEADERFILE