C Các chức năng do người dùng định nghĩa

Trong hướng dẫn này, bạn sẽ học cách tạo các hàm do người dùng định nghĩa trong lập trình C với sự trợ giúp của một ví dụ.

Hàm là một khối mã thực hiện một nhiệm vụ cụ thể.

C cho phép bạn xác định các chức năng theo nhu cầu của bạn. Các hàm này được gọi là các hàm do người dùng định nghĩa. Ví dụ:

Giả sử, bạn cần tạo một vòng tròn và tô màu nó tùy thuộc vào bán kính và màu sắc. Bạn có thể tạo hai hàm để giải quyết vấn đề này:

  • createCircle() chức năng
  • color() chức năng

Ví dụ: Hàm do người dùng xác định

Đây là một ví dụ để thêm hai số nguyên. Để thực hiện tác vụ này, chúng tôi đã tạo một người dùng xác định addNumbers().

 #include int addNumbers(int a, int b); // function prototype int main() ( int n1,n2,sum; printf("Enters two numbers: "); scanf("%d %d",&n1,&n2); sum = addNumbers(n1, n2); // function call printf("sum = %d",sum); return 0; ) int addNumbers(int a, int b) // function definition ( int result; result = a+b; return result; // return statement ) 

Nguyên mẫu hàm

Một nguyên mẫu hàm chỉ đơn giản là khai báo một hàm chỉ định tên, tham số và kiểu trả về của hàm. Nó không chứa phần thân hàm.

Một nguyên mẫu hàm cung cấp thông tin cho trình biên dịch mà sau này hàm có thể được sử dụng trong chương trình.

Cú pháp của nguyên mẫu hàm

 returnType functionName (type1 đối số1, type2 đối số2,…);

Trong ví dụ trên, int addNumbers(int a, int b);nguyên mẫu hàm cung cấp thông tin sau cho trình biên dịch:

  1. tên của chức năng là addNumbers()
  2. kiểu trả về của hàm là int
  3. hai đối số kiểu intđược chuyển cho hàm

Nguyên mẫu hàm không cần thiết nếu hàm do người dùng định nghĩa được xác định trước main()hàm.

Gọi một hàm

Quyền kiểm soát chương trình được chuyển sang chức năng do người dùng định nghĩa bằng cách gọi nó.

Cú pháp của lệnh gọi hàm

 functionName (đối số1, đối số2,…);

Trong ví dụ trên, lệnh gọi hàm được thực hiện bằng cách sử dụng addNumbers(n1, n2);câu lệnh bên trong main()hàm.

Định nghĩa hàm

Định nghĩa hàm chứa khối mã để thực hiện một nhiệm vụ cụ thể. Trong ví dụ của chúng tôi, thêm hai số và trả lại nó.

Cú pháp định nghĩa hàm

 returnType functionName (type1 đối số1, type2 đối số2,…) (// nội dung của hàm) 

Khi một hàm được gọi, quyền điều khiển của chương trình được chuyển sang định nghĩa hàm. Và, trình biên dịch bắt đầu thực thi các mã bên trong phần thân của một hàm.

Truyền đối số cho một hàm

Trong lập trình, đối số đề cập đến biến được truyền cho hàm. Trong ví dụ trên, hai biến n1 và n2 được chuyển trong quá trình gọi hàm.

Các tham số a và b chấp nhận các đối số được truyền vào trong định nghĩa hàm. Các đối số này được gọi là tham số chính thức của hàm.

Loại đối số được truyền cho một hàm và các tham số chính thức phải khớp nhau, nếu không, trình biên dịch sẽ báo lỗi.

Nếu n1 thuộc kiểu char thì a cũng phải thuộc kiểu char. Nếu n2 thuộc kiểu float thì biến b cũng phải thuộc kiểu float.

Một hàm cũng có thể được gọi mà không cần truyền đối số.

Báo cáo trả hàng

Câu lệnh return kết thúc việc thực thi một hàm và trả về một giá trị cho hàm đang gọi. Điều khiển chương trình được chuyển sang hàm gọi sau câu lệnh trả về.

Trong ví dụ trên, giá trị của biến kết quả được trả về cho hàm main. Biến tổng trong main()hàm được gán giá trị này.

Cú pháp của câu lệnh trả về

 return (biểu thức); 

Ví dụ,

trả lại a; return (a + b);

Kiểu giá trị trả về từ hàm và kiểu trả về được chỉ định trong nguyên mẫu hàm và định nghĩa hàm phải khớp nhau.

Truy cập trang này để tìm hiểu thêm về cách chuyển đối số và trả về giá trị từ một hàm.

thú vị bài viết...