Sự khác nhau giữa #include “filename” and #include < filename >?

Lệnh #include <filename> và #include “filename” là tương đương nhau, để include header file của thư viện ngôn ngữ C hoặc header file do lập trình viên tự định nghĩa.

Sự khác nhau giữa #include <filename> and #include “filename” nằm ở khâu tìm kiếm file header của tiền xử lý trước quá trình biên dịch.

  • #include <filename>: tiền xử lý (pre-processor) sẽ chỉ tìm kiếm file header (.h) trong thư mục chứa file header của thư viện ngôn ngữ C (thường là thư mục trong bộ cài IDE).
  • #include “filename”: Trước tiên, tiền xử lý (pre-processor) tìm kiếm file header(.h) trong thư mục đặt project C/C++. Nếu không tìm thấy, tiền xử lý tìm kiếm file header (.h) trong thư mục chứa file header của thư viện ngôn ngữ C (thường là thư mục trong bộ cài IDE).

Tóm lại,

  • Khi cần sử dụng thư viện file header (.h), chúng ta nên sử dụng #include <filename>. Tất nhiên, sử dụng #include “filename” không sai, nhưng tiền xử lí sẽ mất thời gian tìm kiếm trong thư mục project trước khi tìm kiếm trong thư mục header của IDE.
  • Khi cần gọi file header (.h) tự định nghĩa, chúng ta nên sử dụng #include “filename”. Chú ý: nếu file header (.h) được đặt ở đường dẫn khác thư mục project, chúng ta cần phải chỉ định đường dẫn tương đối cho file header: #include “..\…\filename.h”

Ví dụ: Khai báo file header của thư viện và file header tự định nghĩa

File sum.h

#ifndef _SUM_H_
#define _SUM_H_

float sum(float, float);

#endif

File sum.c

#include <stdio.h>
#include <conio.h>
#include "sum.h"


void main( void )
{
    float a = 4.5, b = 6.7;
    printf("sum(%f, %f) = %f", a, b, sum(a, b));
    getch();
}

float sum(float a, float b)
{
    return (a + b);
}

Kết quả:

Tổng 2 số
Tổng 2 số
  • #include <stdio.h> là thư viện cho hàm printf()
  • #include <conio.h> là thư viện cho hàm getch()
  • #include “sum.h” được định nghĩa khai bao hàm sum()

1 Comment on Sự khác nhau giữa #include “filename” and #include < filename >?

Leave a Reply