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 vào C2. Các hàm vào C do người dùng xác định3. Khai báo hàm vào C4. Đệ quy trong thiết kế C5. Lớp lưu trữ trong lập trình C1. Những hàm trong C
Trong khuyên bảo này, các bạn sẽ được trình làng về các hàm trong C (cả hàm do người dùng định nghĩa cùng hàm tủ sách chuẩn). Ko kể ra, bạn cũng sẽ biết được nguyên nhân tại sao các hàm lại được sử 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 khối mã triển khai một trọng trách cụ thể.
Giả sử, bạn phải viết một thiết kế để sản xuất một hình tròn trụ và tô màu đến nó. Bạn phải chọn bán kính và màu sắc. Chúng ta cũng có thể tạo 2 hàm dưới đây để tiến hành nhiệm vụ trên:
Tạo một hàm vẽ hình tròn: createCircle() functionTạo một hàm đánh màu: color() functionViệc phân chia các vấn đề tinh vi thành các vấn đề nhỏ dại hơn góp lập trình của công ty dễ hiểu và dễ sử dụng lại hơn.
Có hai loại hàm trong C:
Các hàm tủ sách tiêu chuẩnCác hàm do người tiêu dùng định nghĩa1.1 các hàm thư viện tiêu chuẩn
Các hàm thư viện tiêu chuẩn chính là các hàm sẵn gồm trong thiết kế C.
Các hàm này được xác minh trong những header files (tệp bao gồm phần mở rộng .h)
Printf() là 1 hàm thư viện chuẩn có chức năng xuất kết quả đã được format sẵn ra screen (hiển thị hiệu quả trên màn hình). Hàm này được khẳng định trong tệp title stdio.h. Bởi đó, để sử dụng hàm printf (), bọn họ cần bao gồm tệp tiêu đề stdio.h bằng cách sử dụng #include .Hàm sqrt() có chức 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 để mày mò thêm.
1.2 những hàm do người dùng xác định
Bạn cũng có thể tạo các hàm vào C cân xứng với nhu yếu của mình. Các hàm do người tiêu dùng tạo ra được điện thoại tư vấn là hàm do người dùng xác định.
Hàm do người tiêu dùng xác định hoạt động như vắt nào?
#include
void functionName()
… .. …
… .. …
int main()
… .. …
… .. …
functionName();
… .. …
… .. …
Lập trình này vẫn thực thi các mã sau hàm main()
Khi trình biên dịch gặp gỡ hàm functionName():, điều khiển của lập trình đã nhảy tới
void functionName()
Và, trình biên dịch ban đầu thực thi các mã bên phía trong functionName ().
Điều khiển xây dựng sẽ quay trở về hàm main() sau khoản thời gian mã bên phía trong hàm này được thực thi.
Lưu ý, thương hiệu 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 sẽ dễ hiểu, dễ duy trì và dễ sửa lỗi hơn.Các mã tái sử dụng có thể được dùng một trong những lập trình khácMột lập trình sẵn lớn rất có thể được chia thành các mô-đun nhỏ tuổi hơn. Bởi vì đó, rất có thể chia một dự án công trình lớn thành phần lớn và mỗi thiết kế viên phụ trách một phần.2. Những hàm trong C do người tiêu 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ề vấn đề 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 tiêu 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 chủng loại hàm
Nguyên chủng loại hàm đó là sự khai báo hàm: tên hàm, những tham số với kiểu trả về. Nó chưa phải 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 thiết kế này.
Cú pháp của nguyên mẫu hàm
returnType functionName(type1 argument1, type2 argument2, …);
note: argument: đối số
Trong ví dụ trên, int addNumbers(int a, int b); đó là nguyên mẫu hàm đưa 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ố vẻ bên ngoài int được chuyển đến hàmKhông cần tạo nguyên mẫu hàm trường hợp hàm do tín đồ dùng xác minh được để trước hàm main().
2.3 Lời hotline hàm
Quyền kiểm soát điều hành lập trình được gửi sang đến hàm do người dùng khẳng định thông qua lời hotline hàm
Cú pháp của lời call hàm
functionName(argument1, argument2, …);
Trong lấy một ví dụ trên, lời call hàm được thực hiện bằng lệnh addNumbers(n1, n2); phía trong hàm main().
2.4 Định nghĩa hàm
Định nghĩa hàm cất khối mã để triển khai một trách nhiệm cụ thể. Trong lấy một ví dụ trên, khái niệm hàm chính là thêm 2 số với trả lại nó.
Cú pháp tư tưởng 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 của lập trình sẽ tiến hành chuyển sang tư tưởng hàm. Cùng trình biên dịch bước đầu thực thi các mã 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 được truyền mang đến hàm. Trong lấy một ví dụ trên, 2 biến số n1 với n2 được media qua quá trình gọi hàm.
Các tham số a với b chấp nhận 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ố đồng ý của hàm.
Loại đối số được truyền cho một hàm và những tham số bằng lòng phải khớp nhau. Nếu không, trình biên dịch đang báo lỗi.
Nếu n1 thuộc dạng hình char thì a cũng đề nghị thuộc giao diện char. Giả dụ n2 thuộc dạng hình float thì biến chuyển b cũng cần thuộc đẳng cấp float.
Cũng rất có thể gọi một hàm nhưng mà không đề xuất truyền đối số.
2.6 Câu lệnh return (trả về)
Câu lệnh return kết thúc việc xúc tiến một hàm với trả về giá trị mang đến hàm sẽ gọi. Điều khiển của lập trình sẽ tiến hành chuyển cho hàm đang call nằm sau câu lệnh return.
Trong ví dụ như trên, quý hiếm của trở thành result được trả về mang đến hàm main. Biến sum vào hàm main() được gán quý giá này.
Cú pháp của câu lệnh return
return (expression);
Ví dụ,
return a;
return (a+b);
Kiểu quý giá được trả về từ bỏ hàm, hình dạng trả về được chỉ định và hướng dẫn trong nguyên chủng loại hàm và tư tưởng hàm đề nghị khớp nhau.
Xem thêm: Đầu Số 086 Là Mạng Gì? Gì? Có Nên Dùng Đầu Số 086 Hiện Nay? Ý Nghĩa Của Đầu Số 086 Và Cách Đặt Mua
Truy cập vào đó để hiểu thêm thông tin cụ thể về phương pháp truyền đối số và cực hiếm trả về xuất phát điểm từ 1 hàm.
3. Khai báo hàm vào C
Trong phần này, các bạn sẽ được khám phá 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 phương pháp sử dụng, khai báo hàm trong C.
4 lập trình dưới đây sẽ chất vấn xem số nguyên mà người tiêu dùng nhập vào có phải là số thành phần không.
Đầu ra của toàn bộ các lập trình tiếp sau đây đều giống nhau, cùng tôi chỉ chế tạo ra một hàm do người dùng xác minh trong từng ví dụ. Tuy nhiên, biện pháp tiếp cận mà tôi tiến hành trong mỗi lấy ví dụ như là khác nhau.
Ví dụ 1: không có đối số như thế nào được truyền và không tồn tại giá trị như thế 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ó mứ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ó mứ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 the checkPrimeNumber() function
// the returned value is assigned to lớn 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 giỏi hơn?
Để nhận xét cách tiếp cận nào xuất sắc hơn thì đề xuất xem xét đến vấn đề mà nhiều người đang muốn giải quyết. Tuy thế trong trường thích hợp này, truyền đối số với trả về giá chỉ trị xuất phát điểm từ một hàm (ví dụ 4) là xuất sắc nhất.
Một công dụng nên thực hiện một trọng trách cụ thể. Hàm checkPrimeNumber() quan yếu lấy nguồn vào từ fan dùng cũng tương tự không thể hiện thông báo thích thích hợp được. Nó bỏ ra có công dụng kiểm tra một trong những có đề nghị là số nguyên tố tuyệt không.
4. Đệ quy trong lập trình C
Trong phần này, các bạn sẽ được học biện pháp khai báo hàm đệ quy trong xây dựng C thông qua ví dụ.
Một hàm có công dụng tự gọi bao gồm nó thì được coi là hàm đệ quy. Cùng kỹ thuật này được call là đệ quy.
Đệ quy vận động như núm nào?
void recurse()
… .. …
recurse();
… .. …
int main()
… .. …
recurse();
… .. …
Đệ quy ra mắt liên tục cho đến khi nó bị phòng lại vì chưng một đôi nét kiện tốt nhất định.
Để ngăn ngừa đệ quy lặp vô hạn, bạn sử dụng câu lệnh if … else (hoặc giải pháp tiếp cận tương tự) trên vị trí cơ mà một nhánh triển khai lệnh gọi đệ quy cùng nhánh sót lại thì không.
Ví dụ: Tổng các 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 call từ hàm main() cùng với number được truyền bên dưới dạng đối số.
Giả sử lúc đầu giá trị của n phía bên trong sum() là 3. Trong lần gọi hàm tiếp theo, 2 được chuyển mang đến hàm sum(). Quá trình này tiếp tục cho tới khi n bằng 0.
Khi n bởi 0, điều kiện if không thành công và phần else được thực thi, trả về tổng số ở đầu cuối của các số nguyên mang lại hàm main ().
Ưu điểm và nhược điểm của đệ quy
Đệ quy giúp lập trình trở yêu cầu ngắn gọn hơn. Tuy nhiên, dùng vòng lặp thay vì đệ quy sẽ khiến lập trình ra mắt chậm hơn nhiều.
Tóm lại, đệ quy là một khái niệm quan tiền trọng. Nó thường xuyên được sử dụng 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 và xử lý những vấn đề như săn sóc cây.
5. Lớp lưu trữ trong lập trình C
Trong phần này, các bạn sẽ được tìm hiểu về phạm vi và thời gian 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 trở nên biết thêm tin tức về biến hóa tĩnh và vươn lên là register.
Tất cả các biến trong lập trình sẵn C đều phải có 2 tính năng: nhiều loại và lớp lưu trữ.
Loại đề cập mang đến kiểu tài liệu của một biến. Cùng lớp lưu trữ khẳng định phạm vi, khả năng hiển thị và thời gian tồn tại của một biến.
Có 4 loại lớp giữ trữ:
Tự độngbên ngoàitĩnhregister5.1 biến cục bộ
Các thay đổi được khai báo bên phía trong một khối đó là biến auto hoặc biến đổi cục bộ. Cá biến toàn thể chỉ tồn tạo phía bên trong một khối cơ mà nó được khai báo.
Ví dụ:
#include
int main(void) {
for (int i = 0; i 5.2 trở thành toàn cục
Các biến được khai báo bên phía ngoài tất cả những hàm được hotline là biến phía bên ngoài hoặc phát triển thành toàn cục. Chúng hoàn toàn có thể được truy cập từ bất kỳ hàm như thế nào trong lập trình.
Ví dụ 1: đổi mới 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 toàn thể được khai báo vào file1. Nếu bạn cố gắng sử dụng đổi mới đó trong tệp file2, trình biên dịch đang khiếu nại. Để giải quyết và xử lý vấn đề này, chúng ta nên thực hiện từ khóa extern vào file2 để ám chỉ rằng rằng biến phía bên ngoài đã được khai báo trong một tệp khác.
5.3 biến chuyển register
Từ khóa register dùng làm khai báo vươn lên là register. Biến đổi register sẽ chạy nhanh hơn thay đổi cục bộ.
Tuy nhiên, các trình biên dịch tiến bộ có ưu điểm là về tối ưu hóa mã cấp tốc chóng. Và sử dụng biến register cũng không giúp lập trình của công ty chạy nhanh hơn.
Trừ khi bạn làm việc trên khối hệ thống nhúng cùng bạn biết cách tối ưu hóa mã cho những vận dụng nhất định thì không đề xuất sử dụng những biến register.
5.4 thay đổi tĩnh
Biến tĩnh được khai báo bằng cách sử dụng từ khóa static. Ví dụ;
static int i;
Giá trị của biến hóa tĩnh vẫn tồn tại cho đến khi thiết kế kết thúc.
Xem thêm: Ảnh Bìa Facebook Dễ Thương Nhất Cho Bạn, Tổng Hợp Những Ảnh Bìa Cute Đẹp Nhất
Ví dụ 2: đổi thay 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ý giá của c được khởi tạo bởi 1. Cực hiếm của nó tăng thêm 5. Thời điểm này, giá trị của c sẽ là 6 cùng số 6 được in lên màn hình
Trong lần hotline thứ 2, c không được khởi tạo từ là 1 nữa vì c là một trong những biến tĩnh. Lúc này, giá trị của c tăng thêm 5. Và cực hiếm của c đã là 11, số 11 được ấn 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 thực hiện hàm. Hy vọng bài viết sẽ giúp đỡ bạn có thêm kỹ năng về (hàm) function trong C. Chúc bạn thành công!