Cú pháp khai báo hàm. 3.[r]
Trang 1Bài gi ng Ngôn ng C - Ch ả ữ ươ ng 8 GV Ngô Công Th ng ắ 1
Ch ươ ng 8 Hàm trong C
I Khai báo hàm
II Đ nh nghĩa hàm ị
III S d ng hàm ử ụ
IV Con tr tr t i hàm ỏ ỏ ớ
Trang 2I Khai báo hàm
1 Gi i thi u v hàm ớ ệ ề
2 Cú pháp khai báo hàm
3 Các tham s trong khai báo hàm ố
Trang 3Bài gi ng Ngôn ng C - Ch ả ữ ươ ng 8 GV Ngô Công Th ng ắ 3
Trong C t t c các ch ng trình con đ u g i là hàm.ấ ả ươ ề ọ
Ngoài các hàm th vi n có s n, ng i l p trình có ư ệ ẵ ườ ậ
th t t o ra các hàm Đ t o ra m t hàm ng i l p ể ự ạ ể ạ ộ ườ ậ trình ph i khai báo và đ nh nghĩa nó.ả ị
Khai báo hàm (function declaration or prototype) là xác đ nh tên c a hàm, ki u d li u tr v , s l ng ị ủ ể ữ ệ ả ề ố ượ tham s và ki u c a t ng tham s ố ể ủ ừ ố
Đ nh nghĩa hàm (function definition) là xác đ nh ị ị công vi c mà hàm s th c hi n thông qua các l nh ệ ẽ ự ệ ệ
c a hàm.ủ
Các hàm trong C không l ng nhau, t c là trong m t ồ ứ ộ hàm ta không th đ nh nghĩa m t hàm khác.ể ị ộ
Trang 42 Cú pháp khai báo hàm
Cú pháp khai báo hàm n m trên m t dòng, k t ằ ộ ế thúc b ng d u ch m ph y ằ ấ ấ ẩ
Ki u_tr _v ể ả ề Tên_hàm( Ki u_1 ể Tên_tham_s _1, ố Ki u_2 ể Tên_tham_s _2,…); ố
Ví d : ụ float inchtomet( float x);
float tong( float a, float b);
M t khai báo hàm không cho bi t nh ng gì có ộ ế ữ trong thân hàm Nó ch báo cho trình biên d ch ỉ ị
bi t v tên hàm, ki u c a hàm, s l ng các ế ề ể ủ ố ượ tham s và ki u c a các tham s ố ể ủ ố
Trang 5Bài gi ng Ngôn ng C - Ch ả ữ ươ ng 8 GV Ngô Công Th ng ắ 5
Khai báo hàm có th đ t b t kỳ đâu tr c khi g i ể ặ ở ấ ướ ọ hàm T t nh t là đ đ u t p ch a ch ng trình chính ố ấ ể ở ầ ệ ứ ươ (ch a hàm main) ho c đ tr c m t hàm s g i nó ứ ặ ể ướ ộ ẽ ọ Trong các ch ng trình nhi u file thì các khai báo hàm ươ ề
th ng đ trong các file header có đuôi h, còn các đ nh ườ ể ị nghĩa hàm đ trong các file th vi n có đuôi obj ho c ể ư ệ ặ lib
N u hàm đ c đ nh nghĩa đâu đó tr c khi g i hàm ế ượ ị ở ướ ọ thì có th không c n khai báo hàm Tuy nhiên v n nên ể ầ ẫ
có khai báo hàm nh t là trong các ch ng trình có ấ ươ nhi u hàm l n hay các ch ng trình n m trên nhi u file.ề ớ ươ ằ ề
Trang 63 Các tham s trong khai báo hàm ố
N u hàm không có tham s thì trong d u ế ố ấ ngo c đ n c a khai báo hàm đ tr ng Ví d : ặ ơ ủ ể ố ụ
int xoa();
Tên c a các tham s trong khai báo hàm có ủ ố
th không c n xác đ nh Ví d : ể ầ ị ụ
float inchtomet( float , float );
Trang 7Bài gi ng Ngôn ng C - Ch ả ữ ươ ng 8 GV Ngô Công Th ng ắ 7
1 Cú pháp đ nh nghĩa hàm ị
2 L nh return ệ
3 Hàm không tr v giá tr ả ề ị
Trang 81 Cú pháp đ nh nghĩa hàm ị
Ki u_tr _v ể ả ề Tên_hàm( Ki u_1 ể Tên_tham_s _1, ố Ki u_2 ể Tên_tham_s _2,…) ố {
//Các l nh c a hàm đ đây ệ ủ ể
}
Ví d :ụ
int cong( int a, int b)
{
int z;
z = a + b;
return z;
Không có
d u ch m ấ ấ
ph y ẩ Thân hàm
Trang 9Bài gi ng Ngôn ng C - Ch ả ữ ươ ng 8 GV Ngô Công Th ng ắ 9
Dòng đ u tiên trong đ nh nghĩa hàm gi ng ầ ị ố trong khai báo hàm, ch khác là không có d u ỉ ấ
ch m ph y và các tham s b t bu c ph i có ấ ẩ ố ắ ộ ả tên.
Khi đã có khai báo hàm thì đ nh nghĩa hàm ị
th ng đ sau hàm main ho c đ trong m t ườ ể ặ ể ộ
t p obj (lib) Đ quen d n v i vi c vi t các ệ ể ầ ớ ệ ế
ch ng trình l n, khi th c hành chúng ta vi t ươ ớ ự ế các khai báo hàm trong t p h, còn các đ nh ệ ị nghĩa hàm đ trong t p obj (lib) ể ệ
Trang 102 L nh return ệ
L nh return đ c s d ng trong m t hàm L nh ệ ượ ử ụ ộ ệ return th c hi n hai ch c năng:ự ệ ứ
Làm cho m t hàm tr v ch ng trình g i nó ộ ở ề ươ ọ
Đ c dùng đ tr v m t giá tr ượ ể ả ề ộ ị
Cú pháp dùng l nh return nh sau:ệ ư
return Giá_tr _tr _v ;ị ả ề
ho c ặ return;
L nh return có th dùng b t kỳ v trí nào trong ệ ể ở ấ ị hàm nh ng th ng cu i hàm.ư ườ ở ố
V i các hàm có tr v giá tr thì l nh return b t bu c ớ ả ề ị ệ ắ ộ
ph i có.ả