Tùy thuộc vào trình complier mà bạn đang sử dụng, thực ra ba cách là cùng một mục đích.
Tôi ko hiểu lắm ngay chổ #include
khi nào thì #include <name>
khi nào thì #inlcude "name.h"
khi nào thì #inlcude <name.h>
Tôi ko hiểu lắm, các bạn giải thích dùm.
Tùy thuộc vào trình complier mà bạn đang sử dụng, thực ra ba cách là cùng một mục đích.
#include là dấu hiệu để máy tính biết đây là khai báo thư viện mà.
Thường thì các sách và tui cũng hay dùng cái #include <name.h>
#include <name> và #include <name.h> là như nhau, tức include file name (không có đuôi .h) và include file name.h trong thư mục chỉ bởi biến môi trường INCLUDE hay thư mục chỉ trong Options (phụ thuộc compiler) vào ct. Còn include "name.xxx" để include file trong thư mục hiện hành của ct hay thư mục include chỉ bởi project - options (phụ thuộc compiler)
Theo chuẩn ANSI:
#include <name> dành cho những thư viện chuẩn của ANSI, sử dụng được trên tất cả IDE.
#include "name.h" dành cho những thư viện do người dùng tự tạo.
#include <name.h> dành cho những thư viện chuẩn của IDE cung cấp, ko phải thư viện chuẩn của ANSI.
Lời khuyên: Nên học C/C++ theo chuẩn ANSI để ko phụ thuộc vào bất kỳ IDE nào.
File được include không nhất thiết phải có đuôi .h, nó có thể không có đuôi, .hpp, .hxx, .txt, .inc, .pas .... đuôi gì cũng xong, miễn nó là text format, theo C/C++ syntax.
Việc dùng 2 dấu ngoặc kép ("name.h") hay 2 dấu lớn-nhỏ (<name.h>) sẽ báo cho trình biên dịch biết nó cần phải tìm file này ở chỗ nào.
Khi dùng #include "name.h" thì trình biên dịch sẽ tìm file này trong thư mục hiện hành trước, nếu tìm ko thấy, nó sẽ nhảy vào thư mục include mặc định của chương trình tìm tiếp.
Còn khi dùng #include <name.h> thì trình biên dịch sẽ nhảy luôn vào thư mục include mặc định ngay từ đầu (ko tìm trong thư mục hiện hành). Điều này giải thích vì sao trình biên dịch báo lỗi nếu bạn viết câu lệnh #include <name.h>, trong đó name.h là file do bạn tạo, đặt trong thư mục hiện hành.
Vậy thì tại sao ta ko dùng cùng 1 kiểu : #include "name.h" (viết kiểu này thì chắc chắn k có lỗi). Câu trả lời là nếu trong 1 chương trình có quá nhiều câu lệnh include và các file này đều dc đặt trong thư mục include mặc định thì việc tìm kiếm này sẽ trở nên lãng phí, tốn nhiều thời gian 1 cách vô ích, gây ra sự chậm chạp cho việc dịch chương trình.
Vì vậy mà tốt nhất là:
#include <name.h> cho các file đặt trong thư mục include mặc định
#include "name.h" cho các file đặt trong thư mục hiện hành
I know... nothing
![]()
Bạn ý đang hỏi về đuôi .h thưa anh >"<File được include không nhất thiết phải có đuôi .h, nó có thể không có đuôi, .hpp, .hxx, .txt, .inc, .pas .... đuôi gì cũng xong, miễn nó là text format, theo C/C++ syntax.