อะไรคือความแตกต่างระหว่าง#include
และ#import
ใน C ++?
อะไรคือความแตกต่างระหว่าง#include
และ#import
ใน C ++?
คำตอบ:
#import
เป็นสิ่งเฉพาะของ Microsoft ซึ่งเห็นได้ชัดสำหรับสิ่งที่ COM หรือ. NET เท่านั้น
#include
เป็นคำสั่งก่อนตัวประมวลผล C / C ++ มาตรฐานที่ใช้สำหรับรวมไฟล์ส่วนหัว (หรือซอร์สโค้ดอื่น ๆ ) ในไฟล์ซอร์สโค้ดของคุณ
นำเข้าใน VC ++: ใช้ #import
สำหรับไลบรารีประเภทหรือ. tlbs (สิ่งที่ COM)
เนื้อหาของไลบรารีชนิดจะถูกแปลงเป็นคลาส C ++ โดยส่วนใหญ่จะอธิบายถึงอินเตอร์เฟส COM สำหรับคุณโดยอัตโนมัติจากนั้นจะรวมอยู่ในไฟล์ของคุณ
#import
สั่งถูกนำโดยไมโครซอฟท์ในฐานะที่เป็นส่วนขยายของภาษา C ++ ภาษา คุณสามารถอ่านเกี่ยวกับเรื่องนี้ในบทความนี้ MSDN
#import
สั่งนอกจากนี้ยังใช้กับ .NET / สิ่ง CLI
นำเข้าใน gcc:
การนำเข้าใน gcc แตกต่างจากการนำเข้าใน VC ++ เป็นวิธีง่ายๆในการรวมส่วนหัวไม่เกินหนึ่งครั้งเท่านั้น (ใน VC ++ และ GCC คุณสามารถทำได้#pragma
ครั้งเดียวเช่นกัน)
#import
สั่งถูก undeprecated อย่างเป็นทางการโดยทีมงาน GCC ในรุ่น 3.4 และผลงานดี 99% ของเวลาในรุ่นก่อนหน้าทั้งหมดของ GCC ซึ่งสนับสนุน
รวม: ใช้ #include
สำหรับไฟล์ส่วนหัวส่วนใหญ่ แต่จะนำเนื้อหาไปไว้ข้างหน้าไฟล์ปัจจุบันของคุณ #include
เป็นส่วนหนึ่งของมาตรฐาน C ++ คุณสามารถอ่านเกี่ยวกับเรื่องนี้ในบทความนี้ MSDN
#import
โดยรวมแล้วเป็นการแก้ปัญหาตามปกติ
#ifndef ...
#define ...
#include ...
#endif
หลีกเลี่ยง #import
รวมไฟล์เฉพาะในกรณีที่ยังไม่เคยรวมไฟล์มาก่อน
อาจเป็นที่น่าสังเกตว่า Objective-C ของ Apple ยังใช้#import
คำสั่ง
การนำเข้ายังเป็นหนึ่งในคีย์เวิร์ดที่เกี่ยวข้องกับn2073 ซึ่งเป็นโมดูลใน C ++ซึ่งเสนอต่อคณะกรรมการภาษาโดย Daveed Vandevoorde ในเดือนกันยายน 2549 ฉันมีภาษาไม่เพียงพอที่จะทราบได้ว่าข้อเสนอนั้นได้รับการระงับอย่างแน่นอนหรือกำลังรอการนำไปใช้ (การพิสูจน์แนวคิด) จากผู้เขียนหรือบุคคลอื่น ...
โปรดทราบว่าใน GCC 4.1 #import
จะเลิก หากคุณใช้งานคุณจะได้รับคำเตือน:
#import
เป็นส่วนขยาย GCC ที่เลิกใช้แล้ว