CÁC HÀM THƯ VIỆN TRONG C++

  -  

Trang công ty | KIẾN THỨC LẬP TRÌNH | C/C++ | Hướng dẫn khai báo hàm bé trong C. Ưu điểm của hàm trong xây dựng C


Nội dung

1. Các hàm trong C2. Các hàm vào C do người dùng xác định3. Khai báo hàm trong C4. Đệ quy trong xây dựng C5. Lớp lưu trữ trong lập trình C

1. Những hàm trong C

Trong lí giải này, các bạn sẽ được giới thiệu về các hàm vào C (cả hàm do người dùng định nghĩa với hàm tủ sách chuẩn). Ngoài ra, bạn cũng trở nên biết được tại sao tại sao những hàm lại được áp dụng trong lập trình.

Bạn đang xem: Các hàm thư viện trong c++


*
*

Các hàm vào C


Hàm trong C (ngôn ngữ lập trình) là 1 trong những khối mã triển khai một nhiệm vụ cụ thể.

Giả sử, bạn cần viết một thiết kế để chế tạo ra một hình tròn trụ và sơn màu cho nó. Bạn phải chọn nửa đường kính và màu sắc. Chúng ta có thể tạo 2 hàm tiếp sau đây để triển khai nhiệm vụ trên:

Tạo một hàm vẽ hình tròn: createCircle() functionTạo một hàm tô màu: color() function

Việc phân chia những vấn đề phức tạp thành các vấn đề nhỏ dại hơn giúp lập trình của bạn dễ hiểu với dễ thực hiện lại hơn.

Có hai loại hàm trong C:

Các hàm thư viện tiêu chuẩnCác hàm do người dùng định nghĩa

1.1 những hàm thư viện tiêu chuẩn

Các hàm tủ sách tiêu chuẩn đó là các hàm sẵn bao gồm trong lập trình sẵn C.

Các hàm này được khẳng định trong những header files (tệp tất cả phần không ngừng mở rộng .h)

Printf() là 1 trong hàm thư viện chuẩn chỉnh có tính năng xuất hiệu quả đã được định dạng sẵn ra màn hình hiển thị (hiển thị công dụng trên màn hình). Hàm này được xác minh trong tệp tiêu đề stdio.h. Vì đó, để thực hiện hàm printf (), bọn họ cần bao hàm tệp title stdio.h bằng cách sử dụng #include .Hàm sqrt() có tính năng tính căn bậc nhì của một số. Hàm được xác minh trong tệp tiêu đề math.h.

Truy cập vào những hàm tủ sách tiêu chuẩn trong lập trình C để tò mò thêm.

1.2 những hàm do người dùng xác định

Bạn cũng rất có thể tạo các hàm vào C phù hợp với yêu cầu của mình. Những hàm do người dùng tạo ra được điện thoại tư vấn là hàm do người tiêu dùng xác định.

Hàm do người dùng xác định hoạt động như nắm nào?

#include

void functionName()

… .. …

… .. …

int main()

… .. …

… .. …

functionName();

… .. …

… .. …

Lập trình này sẽ thực thi các mã sau hàm main()

Khi trình biên dịch gặp mặt hàm functionName():, điều khiển và tinh chỉnh của lập trình đã nhảy tới

void functionName()

Và, trình biên dịch ban đầu thực thi những mã phía bên trong functionName ().

Điều khiển lập trình sẵn sẽ quay trở về hàm main() sau thời điểm mã phía bên trong hàm này được thực thi.

Lưu ý, tên hàm là định danh và đề xuất là duy nhất.

Ưu điểm của các hàm trong C do người tiêu dùng xác định

Lập trình này đã dễ hiểu, dễ bảo trì và dễ dàng sửa lỗi hơn.Các mã tái sử dụng có thể được dùng giữa những lập trình khácMột lập trình lớn rất có thể được phân thành các mô-đun nhỏ hơn. Bởi vì đó, rất có thể chia một dự án lớn thành đa số và mỗi thiết kế viên đảm nhận một phần.

2. Các hàm trong C do người dùng xác định

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

Đây là ví dụ như về việc thêm 2 số nguyên. Để triển khai nhiệm vụ này, bạn cần tạo hàm addNumbers do người dùng xác định.

#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

2.2 Nguyên mẫu hàm

Nguyên mẫu mã hàm chính là sự khai báo hàm: thương hiệu hàm, các tham số và kiểu trả về. Nó không hẳn là phần thân của hàm.

Nguyên mẫu hàm thông tin cho trình biên dịch rằng hàm đó rất có thể sẽ được sử dụng trong lập trình sẵn này.

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

returnType functionName(type1 argument1, type2 argument2, …);

note: argument: đối số

Trong lấy một ví dụ trên, int addNumbers(int a, int b); chính là nguyên mẫu hàm báo tin cho trình biên dịch:

tên của hàm là addNumbers ()kiểu trả về của hàm là inthai đối số hình dạng int được chuyển cho hàm

Không bắt buộc tạo nguyên mẫu hàm giả dụ hàm do bạn dùng khẳng định được đặt trước hàm main().

2.3 Lời call hàm

Quyền kiểm soát lập trình được chuyển sang mang đến hàm do tín đồ dùng xác định thông qua lời điện thoại tư vấn hàm

Cú pháp của lời call hàm

functionName(argument1, argument2, …);

Trong lấy ví dụ như trên, lời hotline hàm được tiến hành bằng lệnh addNumbers(n1, n2); phía bên trong hàm main().

2.4 Định nghĩa hàm

Định nghĩa hàm đựng khối mã để thực hiện một trọng trách cụ thể. Trong lấy ví dụ trên, khái niệm hàm đó là thêm 2 số cùng trả lại nó.

Cú pháp có mang hàm

returnType functionName(type1 argument1, type2 argument2, …)

//body of the function

Khi một hàm được gọi, quyền điều khiển và tinh chỉnh của lập trình sẽ được chuyển sang khái niệm hàm. Với trình biên dịch bắt đầu thực thi các mã phía bên trong phần thân của hàm.

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

Trong lập trình, đối số ám chỉ một biến chuyển được truyền mang lại hàm. Trong ví dụ như trên, 2 biến chuyển số n1 với n2 được media qua quá trình gọi hàm.

Các thông số a cùng b đồng ý các đối số được truyền vào trong quan niệm 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 1 hàm và những tham số chính thức phải khớp nhau. Nếu như không, trình biên dịch vẫn báo lỗi.

Nếu n1 thuộc loại char thì a cũng đề nghị thuộc dạng hình char. Trường hợp n2 thuộc đẳng cấp float thì trở nên b cũng nên thuộc giao diện float.

Cũng hoàn toàn có thể gọi một hàm mà lại không phải truyền đối số.

2.6 Câu lệnh return (trả về)

Câu lệnh return hoàn thành việc xúc tiến một hàm và trả về giá chỉ trị cho hàm vẫn gọi. Điều khiển của lập trình sẽ được chuyển cho hàm đang điện thoại tư vấn nằm sau câu lệnh return.

Trong ví dụ như trên, giá trị của biến chuyển result được trả về cho hàm main. Trở nên sum vào hàm main() được gán cực hiếm này.

Cú pháp của câu lệnh return

return (expression);

Ví dụ,

return a;

return (a+b);

Kiểu giá trị được trả về trường đoản cú hàm, giao diện trả về được hướng đẫn trong nguyên mẫu hàm và định nghĩa hàm bắt buộc khớp nhau.

Xem thêm: Tranh Vẽ Ô Tô Mơ Ước Lamborghini Mới Nhất 4/2022 # Top Like, Vẽ Ô Tô Mơ Ước Lamborghini

Truy cập vào đây để biết thêm thông tin chi tiết về phương pháp truyền đối số và quý giá trả về xuất phát điểm từ một hàm.

3. Khai báo hàm trong C

Trong phần này, bạn sẽ được tìm hiểu về các cách thức tiếp cận khác biệt để giải quyết cùng một vấn đề bằng cách sử dụng, khai báo hàm trong C.

4 lập trình sau đây sẽ kiểm soát xem số nguyên mà người dùng nhập vào liệu có phải là số nhân tố không.

Đầu ra của toàn bộ các lập trình sau đây đều tương tự nhau, với tôi chỉ tạo một hàm do fan dùng xác định trong mỗi ví dụ. Mặc dù nhiên, bí quyết tiếp cận nhưng tôi thực hiện trong mỗi lấy ví dụ như là không giống nhau.

Ví dụ 1: không tồn tại đối số như thế nào được truyền và không tồn tại giá trị nào trả về

#include

void checkPrimeNumber();

int main()

checkPrimeNumber(); // argument is not passed

return 0;

// return type is void meaning doesn’t return any value

void checkPrimeNumber()

{

int n, i, flag = 0;

printf(“Enter a positive integer: “);

scanf(“%d”,&n);

for(i=2; i Ví dụ 2: không có đối số nào được truyền nhưng có giá trị trả về

#include

int getInteger();

int main()

{

int n, i, flag = 0;

// no argument is passed

n = getInteger();

for(i=2; iVí dụ 3: Đối số được truyền nhưng không tồn tại giá trị trả về

#include

void checkPrimeAndDisplay(int n);

int main()

int n;

printf(“Enter a positive integer: “);

scanf(“%d”,&n);

// n is passed khổng lồ the function

checkPrimeAndDisplay(n);

return 0;

// return type is void meaning doesn’t return any value

void checkPrimeAndDisplay(int n)

{

int i, flag = 0;

for(i=2; i Ví dụ 4: Đối số được truyền và có giá trị trả về

#include

int checkPrimeNumber(int n);

int main()

int n, flag;

printf(“Enter a positive integer: “);

scanf(“%d”,&n);

// n is passed to lớn the checkPrimeNumber() function

// the returned value is assigned khổng lồ the flag variable

flag = checkPrimeNumber(n);

if(flag == 1)

printf(“%d is not a prime number”,n);

else

printf(“%d is a prime number”,n);

return 0;

// int is returned from the function

int checkPrimeNumber(int n)

{

int i;

for(i=2; i Cách tiếp cận nào xuất sắc hơn?

Để đánh giá cách tiếp cận nào xuất sắc hơn thì bắt buộc xem xét đến vụ việc mà nhiều người đang muốn giải quyết. Mà lại trong trường hòa hợp này, truyền đối số với trả về giá bán trị xuất phát từ một hàm (ví dụ 4) là xuất sắc nhất.

Một tác dụng nên tiến hành một nhiệm vụ cụ thể. Hàm checkPrimeNumber() cần yếu lấy nguồn vào từ bạn dùng cũng như không thể hiện thông báo thích vừa lòng được. Nó bỏ ra có tác dụng kiểm tra một vài có bắt buộc là số nguyên tố hay không.

4. Đệ quy trong lập trình C

Trong phần này, các bạn sẽ được học cách khai báo hàm đệ quy trong xây dựng C thông qua ví dụ.

Một hàm có tác dụng tự gọi bao gồm nó thì được coi là hàm đệ quy. Và kỹ thuật này được điện thoại tư vấn là đệ quy.

Đệ quy vận động như cầm cố nào?

void recurse()

… .. …

recurse();

… .. …

int main()

… .. …

recurse();

… .. …

Đệ quy ra mắt liên tục cho đến khi nó bị ngăn lại vì một vài nét kiện tốt nhất định.

Để ngăn ngừa đệ quy lặp vô hạn, bạn áp dụng câu lệnh if … else (hoặc bí quyết tiếp cận tương tự) tại vị trí nhưng một nhánh tiến hành lệnh gọi đệ quy với nhánh còn lại thì không.

Ví dụ: Tổng những số tự nhiên sử dụng đệ quy

#include

int sum(int n);

int main()

int number, result;

printf(“Enter a positive integer: “);

scanf(“%d”, &number);

result = sum(number);

printf(“sum = %d”, result);

return 0;

int sum(int n)

if (n != 0)

// sum() function calls itself

return n + sum(n-1);

else

return n;

Đầu ra

Enter a positive integer:3

sum = 6

Đầu tiên, hàm sum() được hotline từ hàm main() cùng với number được truyền bên dưới dạng đối số.

Giả sử thuở đầu giá trị của n phía bên trong sum() là 3. Trong lượt gọi hàm tiếp theo, 2 được chuyển mang lại hàm sum(). Quá trình này tiếp tục cho tới khi n bởi 0.

Khi n bởi 0, đk if không thành công xuất sắc và phần else được thực thi, trả về tổng số sau cuối của các số nguyên mang đến hàm main ().

Ưu điểm cùng nhược điểm của đệ quy

Đệ quy giúp lập trình trở đề nghị ngắn gọn gàng hơn. Tuy nhiên, dùng vòng lặp thay vày đệ quy sẽ khiến cho lập trình ra mắt chậm rộng nhiều.

Tóm lại, đệ quy là 1 trong khái niệm quan tiền trọng. Nó thường xuyên được thực hiện trong cấu trúc dữ liệu và các thuật toán. Ví dụ, đệ quy thường được sử dụng để giải quyết những vấn đề như chăm nom cây.

5. Lớp lưu trữ trong lập trình sẵn C

Trong phần này, các bạn sẽ được tò mò về phạm vi và thời hạn tồn tại của những biến tổng thể và các biến toàn cục. Sát bên đó, bạn cũng sẽ biết thêm thông tin về biến hóa tĩnh và thay đổi register.

Tất cả những biến trong lập trình C đều phải có 2 tính năng: loại và lớp giữ trữ.

Loại đề cập mang đến kiểu dữ liệu của một biến. Cùng lớp lưu giữ trữ xác minh phạm vi, kĩ năng hiển thị và thời gian tồn trên của một biến.

Có 4 một số loại lớp lưu lại trữ:

Tự độngbên ngoàitĩnhregister

5.1 biến đổi cục bộ

Các thay đổi được khai báo bên trong một khối chính là biến tự động hóa hoặc phát triển thành cục bộ. Cá biến tổng thể chỉ tồn tạo phía bên trong một khối mà lại nó được khai báo.

Ví dụ:

#include

int main(void) {

for (int i = 0; i 5.2 biến chuyển toàn cục

Các biến chuyển được khai báo phía bên ngoài tất cả những hàm được hotline là biến bên ngoài hoặc đổi mới toàn cục. Chúng rất có thể được truy vấn từ bất kỳ hàm làm sao trong lập trình.

Ví dụ 1: phát triển thành toàn cục

#include

void display();

int n = 5; // global variable

int main()

++n;

display();

return 0;

void display()

++n;

printf(“n = %d”, n);

Đầu ra

n = 7

Giả sử, một biến tổng thể được khai báo vào file1. Nếu bạn nỗ lực sử dụng trở nên đó trong tệp file2, trình biên dịch vẫn khiếu nại. Để giải quyết vấn đề này, các bạn nên áp dụng từ khóa extern vào file2 để ám chỉ rằng rằng biến bên ngoài đã được khai báo trong một tệp khác.

5.3 trở nên register

Từ khóa register dùng làm khai báo đổi thay register. Vươn lên là register đang chạy cấp tốc hơn trở thành cục bộ.

Tuy nhiên, những trình biên dịch tiến bộ có điểm mạnh là về tối ưu hóa mã cấp tốc chóng. Và thực hiện biến register cũng không hỗ trợ lập trình của bạn chạy nhanh hơn.

Trừ khi chúng ta làm vấn đề trên hệ thống nhúng và bạn biết cách tối ưu hóa mã đến những vận dụng nhất định thì không phải sử dụng các biến register.

5.4 biến tĩnh

Biến tĩnh được khai báo bằng cách sử dụng từ bỏ khóa static. Ví dụ;

static int i;

Giá trị của biến chuyển tĩnh vẫn tồn tại cho đến khi lập trình kết thúc.

Xem thêm: Hướng Dẫn Cách Đánh Số Trang Từ Trang 2 022, Cách Đánh Số Trang Từ Trang 2 Trở Đi

Ví dụ 2: biến hóa tĩnh

#include

void display();

int main()

display();

display();

void display()

static int c = 1;

c += 5;

printf(“%d “,c);

Đầu ra

6 11

Trong lần gọi hàm đầu tiên, quý hiếm của c được khởi tạo bằng 1. Cực hiếm của nó tăng lên 5. Dịp này, cực hiếm của c vẫn là 6 với số 6 được in ấn lên màn hình

Trong lần gọi thứ 2, c không được khởi tạo từ là một nữa vì chưng c là một trong biến tĩnh. Thời điểm này, cực hiếm của c tạo thêm 5. Và giá trị của c vẫn là 11, số 11 được in lên màn hình.

Trên đây là tất cả các kiến thức về các hàm vào C, ưu thế của việc sử dụng hàm. Hy vọng nội dung bài viết sẽ giúp bạn có thêm kỹ năng và kiến thức về (hàm) function vào C. Chúc các bạn thành công!