HÀM Main TRẢ VỀ GÌ? – Đào Hải Nam
Có thể bạn quan tâm
int main(int argc, char *argv[])
int main (void)
public static void main(String [] args)
static void Main(string[] args)
def main():
Có lẽ bạn không lạ gì hàm main, hàm đầu tiên bạn viết khi học lập trình C, ngay cả khi chuyển sang một ngôn ngữ khác, nhất là các ngôn ngữ thừa kế từ C như C++, Java và C#, bạn cũng sẽ thấy một hàm tương tự. Đặc trưng của main là nó sẽ nhận vào các tham số (các tham số này được truyền cho chương trình đang chạy từ trên dòng lệnh) và trả về dữ liệu kiểu int hoặc void.
Khi gọi một hàm (sqrt, rand, malloc…), bạn sẽ nhận được kết quả trả về của hàm đó, vậy giá trị trả về của hàm main sẽ trả về cho ai? Và để làm gì? Vì khi main kết thúc cũng đồng nghĩa với chương trình kết thúc, nên bên trong chương trình bạn không có cách nào lấy giá trị đó (trừ khi bạn cố ý gọi main), mà giá trị này sẽ trả về cho hệ điều hành, hệ điều hành sẽ lưu lại và cho phép chương trình kế tiếp thực thi có thể đọc được. Nhờ khả năng chuyển kết quả thực thi của một chương trình cho một chương trình khác mà ta có thể viết được các chuỗi lệnh (hay các batch scripts, bash scripts…).
Hãy mở dòng lệnh Windows và thử một ví dụ sau:
dir ABC:: <ENTER>
echo %errorlevel%
Bạn sẽ thấy nó hiện số 1, bây giờ bạn gõ dir C:\ rồi gõ Enter, sau đó hiển thị lại biến %errorlevel% bằng lệnh echo, bạn sẽ thấy nó hiển thị giá trị 0. 0 và 1 chính là các giá trị trả về khác nhau từ hàm main (của lệnh dir).
Giờ ta thử thêm một chút nhé: Sau khi chạy lệnh dir xong, ta gõ tiếp lệnh sau:
if %errorlevel%==0 echo Lenh dir chay khong bi loi
Bây giờ câu thông báo “Lenh dir chay khong bi loi” sẽ chỉ hiển thị nếu bạn vừa dir một thư mục hợp lệ.
Vậy tôi nên trả về giá trị như thế nào? Có một quy ước chung là khi chương trình kết thúc không có lỗi, ta trả về 0, đây cũng là giá trị trả về nếu bạn để kiểu trả về của main là void. Mỗi giá trị tăng dần 1, 2, 3, 4… sau đó sẽ đại diện cho một lỗi – cũng theo thứ tự nghiêm trọng tăng dần. Tất nhiên khi bạn đã quy định một mã lỗi, bạn cũng phải viết tài liệu mô tả nó để người dùng biết cách sử dụng.
Ngoài errorlevel, các chương trình còn có thể giao tiếp được với nhau thông qua các kênh standard input/output, bằng cách dùng các ký hiệu như >, ,>>, |.Hãy đoán thử xem câu lệnh sau sẽ in ra gì nhé: tasklist | findstr “chrome.exe”
Bạn thử nghĩ xem có biết bao nhiêu tiềm năng khi ta có thể kết nối các lệnh hoàn toàn riêng biệt với nhau?
Share this:
- X
Related
Từ khóa » Hàm Main
-
Khai Báo Thư Viện Và Hàm Main Trong C++ - Freetuts
-
Bạn Hiểu Về Hàm Main Trong Java đến Mức Nào? 12 Câu Hỏi đơn ...
-
Giúp Mình định Nghĩa 2 Hàm Void Main Và Int Main - Dạy Nhau Học
-
Cách Dùng Hàm Main Trong C - Programming - Dạy Nhau Học
-
1.7. Chia Nhỏ Chương Trình Thành Các Hàm - Lập Trình Tân Binh
-
Chi Tiết Bài Học 4.Hàm Main Trong Python - Vimentor
-
Các Hàm Trong C | Cách Khai Báo Hàm Trong C Chi Tiết - Ironhack
-
Hàm Main Trong C/C++ Nên Trả Về Giá Trị Nào Và Tại Sao?
-
Python: Hàm Main() Trong Python | V1Study
-
Hàm Main Trong Python Và Main Trong C/C++ Khác Nhau Như Thế Nào?
-
[PDF] Bài 3: Căn Bản Về Hàm - VNU-UET
-
Định Nghĩa Các Hàm Main Trong Python - Techmaster