การใช้ <xx> และ “xx” ใน #include

การใช้ <xx> และ "xx" ใน #include มีความแตกต่างกัน และมีความหมายที่ต่างกันในการบอกให้คอมไพเลอร์ค้นหาไฟล์ header

1. #include <xx> (Angle Brackets – วงเล็บปีกกา):

  • ความหมาย: ใช้สำหรับไฟล์ header ที่เป็นส่วนหนึ่งของ standard library ของภาษา C++ หรือ library ที่ติดตั้งไว้ใน system include paths ของคอมไพเลอร์
  • การค้นหา: คอมไพเลอร์จะค้นหาไฟล์ header ใน directories ที่ถูกกำหนดไว้เป็น standard include paths ตัวอย่างเช่น บน Linux มักจะเป็น /usr/include หรือ /usr/local/include หรือ directories ที่ compiler toolchain กำหนดไว้
  • ตัวอย่าง: #include <iostream>#include <vector>#include <WiFi.h> (ในกรณีที่ WiFi library ถูกติดตั้งใน system include paths)
  • โดยทั่วไป: ใช้สำหรับ header files ที่มาพร้อมกับคอมไพเลอร์, libraries ที่ติดตั้งผ่าน package manager (เช่น apt, yum, brew), หรือ libraries ที่ถูกกำหนดให้เป็น system-wide

2. #include "xx" (Double Quotes – เครื่องหมายคำพูดคู่):

  • ความหมาย: ใช้สำหรับไฟล์ header ที่เป็นส่วนหนึ่งของ project ของคุณเอง หรือ libraries ที่อยู่ใน project directory หรือ directories ที่เกี่ยวข้องกับ project
  • การค้นหา: คอมไพเลอร์จะเริ่มต้นค้นหาไฟล์ header ใน directory เดียวกับไฟล์ source code ที่กำลังคอมไพล์อยู่ก่อน จากนั้นถ้าไม่พบ ก็จะค้นหาใน directories อื่นๆ ที่ถูกกำหนดไว้ใน project settings (เช่น include paths ใน IDE หรือ Makefile)
  • ตัวอย่าง: #include "CREDENTIALS.H"#include "my_header.h"
  • โดยทั่วไป: ใช้สำหรับ header files ที่คุณสร้างขึ้นเอง, header files ที่อยู่ใน subdirectory ของ project, หรือ header files ของ libraries ที่ถูกนำมาใส่ไว้ใน project โดยตรง

สรุปความแตกต่าง:

คุณสมบัติ#include <xx>#include "xx"
ความหมายStandard library/system libraryProject-specific library/header
การค้นหาSystem include pathsProject directory, then system paths
การใช้งานหลักStandard headers, system librariesProject headers, local libraries

ในกรณีของโค้ด:

  • #include <WiFi.h>: หมายความว่า WiFi.h ควรเป็นส่วนหนึ่งของ Arduino core หรือ library ที่ถูกติดตั้งไว้ใน Arduino IDE หรือ system include paths
  • #include "CREDENTIALS.H": หมายความว่า CREDENTIALS.H เป็นไฟล์ header ที่คุณสร้างขึ้นเองและอยู่ใน project directory ของคุณ

คำแนะนำ:

  • ถ้าคุณกำลังใช้ header file ที่มาพร้อมกับคอมไพเลอร์หรือ library ที่ติดตั้งไว้ ให้ใช้ <xx>
  • ถ้าคุณกำลังใช้ header file ที่คุณสร้างขึ้นเองหรือเป็นส่วนหนึ่งของ project ของคุณ ให้ใช้ "xx"

การใช้ #include อย่างถูกต้องจะช่วยให้คอมไพเลอร์ค้นหาไฟล์ header ได้อย่างถูกต้องและหลีกเลี่ยงข้อผิดพลาดในการคอมไพล์ครับ

Leave a Comment