Tệp tiêu đề C

Cách sử dụng Tệp tiêu đề C để tách một chương trình thành nhiều tệp

Các chương trình đơn giản có thể được đặt trong một tệp duy nhất, nhưng khi chương trình của bạn phát triển lớn hơn, không thể giữ tất cả chỉ trong một tệp.

Bạn có thể di chuyển các phần của chương trình sang một tệp riêng biệt, sau đó bạn tạotập tin tiêu đề.

Tệp tiêu đề trông giống như tệp C bình thường, ngoại trừ nó kết thúc bằng.hthay vì.cvà thay vì triển khai các chức năng của bạn và các phần khác của chương trình, nó giữtuyên bố.

Bạn đã sử dụng tệp tiêu đề khi lần đầu tiên sử dụngprintf()hoặc chức năng I / O khác và bạn phải nhập:

#include <stdio.h>

để dùng nó.

#includelà mộtbộ tiền xử lýchỉ thị.

Bộ xử lý trước đi và tra cứustdio.htrong thư viện chuẩn, vì bạn đã sử dụng dấu ngoặc vuông xung quanh nó. Để bao gồm các tệp tiêu đề của riêng bạn, bạn sẽ sử dụng dấu ngoặc kép, như sau:

#include "myfile.h"

Ở trên sẽ tra cứumyfile.htrong thư mục hiện tại.

Bạn cũng có thể sử dụng cấu trúc thư mục cho các thư viện:

#include "myfolder/myfile.h"

Hãy làm một ví dụ. Chương trình này tính toán các năm kể từ một năm nhất định:

#include <stdio.h>

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

int main(void) { printf("%u", calculateAge(1983)); }

Giả sử tôi muốn di chuyểncalculateAgechức năng cho một tệp riêng biệt.

Tôi tạo ra mộtcalculate_age.ctập tin:

int calculateAge(int year) {
  const int CURRENT_YEAR = 2020;
  return CURRENT_YEAR - year;
}

Và mộtcalculate_age.htập tin nơi tôi đặtnguyên mẫu chức năng, giống như hàm trong.ctệp, ngoại trừ phần nội dung:

int calculateAge(int year);

Bây giờ trong chính.ctệp chúng tôi có thể truy cập và xóacalculateAge()định nghĩa hàm và chúng ta có thể nhậpcalculate_age.h, điều này sẽ làm chocalculateAge()chức năng có sẵn:

#include <stdio.h>
#include "calculate_age.h"

int main(void) {
  printf("%u", calculateAge(1983));
}

Đừng quên rằng để biên dịch một chương trình được tạo bởi nhiều tệp, bạn cần liệt kê tất cả chúng trong dòng lệnh, như sau:

gcc -o main main.c calculate_age.c

Và với các thiết lập phức tạp hơn, một Makefile là cần thiết để cho trình biên dịch biết cách biên dịch chương trình.

Tải xuống miễn phí của tôiSổ tay C


Các hướng dẫn khác về tiếng clang: