1. Cơ bản về void
trong ngôn ngữ C
Trong ngôn ngữ C, void
là một từ khóa đặc biệt để chỉ ra rằng hàm không trả về giá trị nào. Nó được sử dụng khi hàm thực hiện một tác vụ cụ thể mà không cần trả về kết quả. Ví dụ, các hàm xuất dữ liệu hoặc thực hiện xử lý đơn giản thường sử dụng void
. Đối với người mới bắt đầu học C, việc hiểu khái niệm này rất quan trọng vì sử dụng đúng void
giúp làm rõ cấu trúc và mục đích của chương trình, từ đó tăng khả năng đọc và bảo trì mã nguồn.
Vai trò của void
void
là từ khóa trong C để biểu thị rằng hàm không trả về giá trị.- Khi sử dụng
void
trong prototype của hàm, nó chỉ rõ rằng hàm đó không trả về bất kỳ giá trị nào.
2. void
là gì?
void
là từ khóa dùng để chỉ kiểu trả về của hàm. Thông thường, hàm sẽ trả về một giá trị thuộc một kiểu nào đó, nhưng nếu khai báo void
thì hàm sẽ không trả về gì cả. Ngoài ra, void
cũng được sử dụng để chỉ ra rằng hàm không nhận tham số nào. Trong trường hợp này, void
giúp làm rõ rằng hàm không có đối số truyền vào.
Cách sử dụng void
- Hàm không có giá trị trả về: Sử dụng
void
để chỉ ra rằng hàm không trả về giá trị nào. - Hàm không có tham số: Nếu hàm không nhận tham số, có thể sử dụng
void
để chỉ điều đó.

3. Khi nào nên sử dụng void
Các hàm kiểu void
thường được dùng khi chỉ thực hiện một tác vụ nhất định mà không cần kết quả trả về cho phần khác của chương trình. Ví dụ như các hàm hiển thị thông báo trên màn hình hoặc đóng tệp tin. Trong các trường hợp như vậy, việc dùng void
giúp làm rõ hàm không cần trả về giá trị nào, từ đó mã nguồn dễ hiểu hơn.
Ví dụ về sử dụng void
- Hàm xuất dữ liệu: Các hàm dùng để hiển thị kết quả, không cần giá trị trả về sau khi hiển thị.
- Hàm khởi tạo: Các hàm khởi tạo tài nguyên, không cần giá trị trả về sau khi khởi tạo.
4. Ví dụ về hàm void
Dưới đây là một số ví dụ cơ bản về hàm void
.
Ví dụ 1: Hàm hiển thị thông báo
#include <stdio.h>
void printMessage() {
printf("Hello, World!n");
}
int main() {
printMessage();
return 0;
}
Hàm printMessage
này sẽ hiển thị thông báo “Hello, World!”. Vì không cần giá trị trả về nên được khai báo với void
.
Ví dụ 2: Khởi tạo biến mảng
void initializeArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
arr[i] = 0;
}
}
Hàm initializeArray
này sẽ khởi tạo các phần tử của mảng về giá trị 0. Hàm chỉ thực hiện thao tác khởi tạo nên không cần giá trị trả về.

5. Vai trò của void
trong khai báo prototype
Sử dụng void
trong khai báo prototype giúp chỉ rõ rằng hàm không trả về giá trị nào, từ đó tăng tính dễ hiểu và khả năng đọc mã nguồn.
Ví dụ về khai báo prototype
void displayMessage(void);
Ví dụ này chỉ rõ rằng hàm displayMessage
không nhận tham số và cũng không trả về giá trị.
6. Best practices khi sử dụng void
Một best practice khi sử dụng void
là chỉ nên dùng khi hàm thực sự không cần trả về giá trị. Đồng thời, sử dụng void
để làm rõ mục đích của hàm giúp mã nguồn dễ đọc và bảo trì hơn.
Thiết kế hàm void
- Thiết kế đơn giản: Hàm
void
phù hợp với các tác vụ đơn giản, rõ ràng. - Mục đích rõ ràng: Nên ghi chú giải thích lý do vì sao hàm không cần trả về giá trị để người đọc dễ hiểu.
7. Cách sử dụng nâng cao của void
Trong lập trình C nâng cao, có thể dùng con trỏ void*
để xử lý kiểu dữ liệu tổng quát. void*
có thể trỏ tới bất kỳ kiểu dữ liệu nào, rất hữu ích khi quản lý bộ nhớ hoặc xây dựng các hàm đa năng.
Ví dụ về void*
void* myFunction() {
// Trả về con trỏ tới bất kỳ kiểu dữ liệu nào
}
Ví dụ này sử dụng void*
để trả về một con trỏ tới bất kỳ kiểu dữ liệu nào, phù hợp khi xây dựng các hàm tổng quát.

8. Tổng kết và điểm quan trọng
void
được sử dụng để chỉ hàm không trả về giá trị.- Sử dụng
void
giúp làm rõ mục đích của hàm và tăng khả năng đọc mã nguồn. - Với các trường hợp nâng cao, có thể dùng
void*
để xử lý kiểu dữ liệu tổng quát.
9. Tài liệu tham khảo và học thêm
- Sách “The C Programming Language” của Kernighan & Ritchie
- Các tài liệu hướng dẫn lập trình C trực tuyến
- Tài liệu chi tiết về cách dùng
void
và con trỏ trong C
Qua bài viết này, hy vọng bạn đã hiểu từ cơ bản đến nâng cao về void
trong ngôn ngữ C và có thể áp dụng vào thực hành lập trình C một cách hiệu quả.