Hàm main trong C

Cùng tìm tòi về hàm main() trong C. Bạn sẽ học được định nghĩa hàm main() là gì, ý nghĩa các thành phần trong hàm main(), cách khai báo hàm main() trong trường hợp thông thường & khi cần import data từ keyboard, cũng như cách dùng return 0 & return 1 trong hàm main() sau bài học này.

Hàm main() trong C là gì

Trong từ ngữ C, một chương trình là một tập hợp các hàm, với mỗi hàm trong chương trình là “tập hợp các quy trình” cần giải quyết. & trong các hàm đó thì hàm main() trong Chàm trước nhất được thực thi khi khởi đầu chạy một chương trình C.

Hàm main() trong C là gì

Cùng lúc, khi hàm main() chấm dứt cũng là lúc chấm dứt chương trình. Các hàm khác hàm main() không có vai trò gì trong chương trình cả, trừ khi chúng được gọi trong hàm main().

Hàm main() được thực thi trước nhất khi chạy chương trình C

Trong bài thứ tự thực thi của chương trình C, tất cả chúng ta đã biết các câu lệnh trong chương trình C sẽ được thực hiện theo thứ tự chúng được viết trong chương trình, & rõ ràng và cụ thể thì các lệnh sẽ được thực hiện theo thứ tự từ trên xuống dưới giống như dòng chảy của sông ra biển vậy.

Bên cạnh đó điều đó không có nghĩa là chương trình trong C sẽ khởi đầu thực thi từ câu lệnh trước nhất cho đến cuối cùng được ghi trong mã nguồn của nó.

Thật vậy, giống như chẳng hạn về chương trình Helllo World mà tất cả chúng ta đã sử dụng nhiều lần sau đây, thì chương trình C không phải khởi đầu được chạy từ dòng trước nhất #include <stdio.hvàgt;, mà là xuất phát điểm từ dòng lệnh int main(void){ có công dụng khởi đầu hàm main() trong C.



int

main

(

void

)

{


printf

(

"Hello World!n"

);


return

;


}


Một chương trình viết bởi từ ngữ C sẽ được khởi đầu bằng cách thực thi hàm main(), & cũng chấm dứt khi hàm main() này đã chấm dứt. Vì vậy các câu lệnh, hoặc hàm kể cả được viết trước hàm main() đi chăng nữa, thì cũng chỉ được thực thi sau khoảng thời gian được gọi ở bên trong hàm main() mà thôi.

Xem Thêm  Các tham số thủ tục được lưu trữ trong SQL Server (Toàn bộ hướng dẫn) - các tham số trong thủ tục được lưu trữ sql

Chẳng hạn trong chương trình sau đây, dù rằng hàm timChuVi() được khai báo trước hàm main(), nhưng do tất cả chúng ta không gọi hàm này trong hàm main(), nên hàm timChuVi() thực tiễn đã chẳng hề chạy hay có công dụng gì trong chương trình của các bạn cả.




int

timChuVi

(

float

r)

{


float

area =

3.14

* r * r;


return

area;


}





int

main

(

void

)

{


printf

(

"Hello World!n"

);


return

;


}


Cú pháp hàm main() trong C

Hàm main() trong C có cú pháp như sau:

int main(void){
 //Viết các lệnh giải quyết trong main()
 
 return (0);
}

Trong số đó, từng thành phần trong hàm main() có ý nghĩa như sau:
Cú pháp hàm main() trong C

Tất cả chúng ta sẽ cùng làm rõ từng thành phần trong cú pháp của hàm main() sau đây.

int main(void) là gì trong C

Trong từ ngữ C, int main(void) có công dụng khai báo hàm main() sử dụng trong chương trình, trong đó:

  • int có ý nghĩa là hàm main() chỉ có thể trả về giá trị thuộc kiểu số nguyên mà thôi. Thực tiễn thì hàm main() trong C chỉ có thể trả về một trong hai giá trị là return 0 hoặc return 1, vì vậy tất cả chúng ta chỉ có thể chỉ định kiểu int khi khai báo hàm main(). Tất cả chúng ta

    chẳng thể

    sử dụng kiểu khác int như char để khai báo main(), chẳng hạn như char (main(void) được.

Nếu bạn chưa lý giải được thì cũng không vấn đề gì, chỉ cần nhớ là thông thường thì hàm main() trong C sẽ được khởi đầu bởi dòng int main(void).

  • void có công dụng chỉ định hàm main() không trả về giá trị. Nói đúng hơn thì hàm main() trong C sẽ không trả về giá trị nào khác ngoài hoặc 1, vì vậy tất cả chúng ta sử dụng void khi khai báo hàm main() trong C.

Sự độc đáo giữa return 0 & return 1 trong hàm main() của C

Hàm main() trong C chỉ trả về 1 trong hai giá trị là hoặc 1, tương ứng với nó là hai câu lệnh dùng để trả giá trị về là return 0 & return 1.

Hai giá trị trả về này của hàm main() trong C có ý nghĩa như sau:

  1. Tất cả chúng ta chỉ đinh return 0 để chấm dứt chương trình theo cách bình bình (normal termination). Điều đó có nghĩa là kể cả chương trình có xảy ra lỗi hay không, thì C vẫn ngầm định là chương trình đã được chấm dứt mà không có lỗi xảy ra.

  2. Tất cả chúng ta chỉ đinh return 1 để chấm dứt chương trình theo cách dị thường (abnormal termination). Điều đó có nghĩa là khi chương trình xảy ra lỗi, thì lỗi này sẽ được trả về khi chấm dứt chương trình.

Vậy đâu là sự độc đáo giữa return 0 & return 1 trong hàm main() của C? Câu giải đáp chính là ở cách mà chương trình C cũng như hàm main() được chấm dứt khi trong chương trình có lỗi xảy ra.

Điều đó có nghĩa khi xảy ra lỗi trong chương trình, return 1 sẽ trả về lỗi khi chấm dứt chương trình, còn return 0 thì không.

Vậy tất cả chúng ta nên sử dụng return 0 hay là return 1 trong C? Câu giải đáp lệ thuộc vào mức độ trọng yếu của việc có cần nhắc nhở hay không nhắc nhở lỗi sau khoảng thời gian chạy chương trình C cho người dùng.

Chẳng hạn trong một lệnh điều kiện của chương trình C, giải quyết bị xảy ra lỗi, & tất cả chúng ta cần phải báo lỗi này cho người dùng, khi đó tất cả chúng ta sẽ chỉ định return 1. Bên cạnh đó nếu như lỗi đó là không trọng yếu & tất cả chúng ta không nhất thiết phải báo người dùng, khi đó hãy chỉ định return 0 để chấm dứt chương trình C theo cách bình bình.

Trường hợp không dùng int main(void) khi khai báo hàm main() trong C

Ở phần trên tất cả chúng ta đã biết trong phần nhiều trường hợp, tất cả chúng ta sẽ dùng int main(void) như là dòng mặc định để khai báo hàm main() trong chương trình C.

Với hàm main() thông thường thế này, tất cả chúng ta sẽ khởi động chương trình, rồi chạy hàm main(), sau đó có thể gọi một số hàm để import data như scanf() từ bên trong hàm main().

Bên cạnh đó trong các chương trình C mà tất cả chúng ta cần phải import data đồng thời khi khởi động chương trình khi đó tất cả chúng ta không sử dụng tới int main(void), mà thay vào này là sử dụng tới cú pháp của hàm main() sau đây:

int main(int argc, char *argv[])
{
 //Viết các lệnh giải quyết trong main()
 
 return (0);
}

Trong số đó:

  • int argc có công dụng khai báo một số nguyên
  • char* argv[] có công dụng khai báo một con trỏ kép để nhập các dữ liệu từ keyboard vào mảng.

So với các bạn mới học C thì cách viết này có lẽ rất khó hiểu, không những thế bạn chỉ cần nhớ là tất cả chúng ta sử dụng lệnh int main(int argc, char* argv[]) thay cho int main(void) khi khai báo hàm main() trong chương trình C mà cần tới import data từ keyboard & truyền vào chương trình là được.

Kết luận

Trên đây tất cả chúng ta đã cùng tìm tòi về hàm main() trong Crồi. Để nắm vững bài viết bài học hơn, bạn hãy thực hành viết lại các chẳng hạn của ngày bây giờ nhé.

& hãy cùng tìm tòi những tri thức sâu hơn về C trong các bài học kế tiếp.

Xem Thêm  19 Ví dụ về CSS Navbar tuyệt vời với đoạn mã - ví dụ về thanh điều hướng đáp ứng css

Viết một bình luận