Table of Contents
Hàm trong C là gì?
Hàm trong C là một khối mã thực hiện một nhiệm vụ cụ thể. Việc sử dụng hàm giúp chương trình trở nên dễ đọc, dễ bảo trì và tái sử dụng mã hiệu quả hơn. Một chương trình C có thể chứa nhiều hàm, trong đó hàm main()
là hàm bắt buộc và là điểm bắt đầu của chương trình.
Gọi hàm trước khi định nghĩa
Trong C, việc gọi một hàm trước khi nó được định nghĩa đầy đủ có thể dẫn đến lỗi biên dịch. Để tránh lỗi này, cần phải khai báo hàm trước khi gọi. Khai báo hàm cung cấp cho trình biên dịch thông tin về kiểu trả về và các tham số của hàm.
Câu hỏi: Nếu hàm được gọi trước khi nó định nghĩa thì điều kiện là gì?
A. Kiểu trả về của hàm phải là kiểu void
B. Kiểu đầu vào của hàm phải là kiểu void
C. Trước khi gọi hàm nó phải được khai báo
D. Hàm chỉ trả về kiểu dữ liệu boolean
Trả lời:
C. Trước khi gọi hàm nó phải được khai báo
Giải thích:
Khi một hàm được gọi trước khi định nghĩa, trình biên dịch cần biết kiểu trả về và các tham số của hàm để có thể tạo mã đúng. Khai báo hàm cung cấp thông tin này cho trình biên dịch. Khai báo hàm bao gồm kiểu trả về, tên hàm và danh sách các tham số (nếu có). Ví dụ:
int cong(int a, int b); // Khai báo hàm cong
int main() {
int ketQua = cong(2, 3); // Gọi hàm cong
// ... phần còn lại của hàm main
}
int cong(int a, int b) { // Định nghĩa hàm cong
return a + b;
}
Trong ví dụ trên, hàm cong
được khai báo trước khi được gọi trong hàm main
. Điều này cho phép trình biên dịch biết rằng cong
là một hàm nhận hai tham số kiểu int
và trả về một giá trị kiểu int
.
Việc khai báo hàm trước khi gọi là bắt buộc nếu định nghĩa hàm xuất hiện sau vị trí gọi hàm trong mã nguồn. Nếu định nghĩa hàm xuất hiện trước vị trí gọi, thì khai báo là không bắt buộc nhưng vẫn được khuyến khích để tăng tính dễ đọc và bảo trì của mã.
Ví dụ về lỗi khi không khai báo hàm:
int main() {
int ketQua = tru(5, 2); // Gọi hàm tru trước khi khai báo
// ... phần còn lại của hàm main
}
int tru(int a, int b) {
return a - b;
}
Đoạn mã trên sẽ gây ra lỗi biên dịch vì hàm tru
được gọi trước khi được khai báo hoặc định nghĩa.
Tóm tắt
Để gọi hàm trước khi định nghĩa trong C, bắt buộc phải khai báo hàm trước vị trí gọi. Khai báo hàm giúp trình biên dịch hiểu được kiểu trả về và các tham số của hàm, từ đó tạo mã đúng. Khai báo hàm là một phần quan trọng của việc tổ chức mã nguồn và giúp tránh các lỗi biên dịch.

Nguyễn Lân Tuất là nhà khoa học người Việt Nam trong lĩnh vực vật liệu tiên tiến, hiện đang làm việc tại Đức (wiki). Ông xuất thân từ dòng họ Nguyễn Lân, gia đình có truyền thống hiếu học. Với nhiều năm nghiên cứu và giảng dạy, ông đã đóng góp quan trọng trong công nghệ vật liệu, đặc biệt là màng mỏng và vật liệu chức năng, với các ứng dụng thực tiễn trong công nghiệp và khoa học.