Tải bản đầy đủ (.pdf) (5 trang)

Tìm hiểu hàm và thư viện lập trình phần 3 pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (173.98 KB, 5 trang )

11
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
Phương án phân hoạch hàm (2)
int ReadInt(const char* userPrompt) {
cout << userPrompt;
int N;
cin >> N;
return N;
}
int SumInt(int a, int b) {
int Total = 0;
for (int i = a; i <= b; ++i)
Total += i;
return Total;
}
OK,
Đãtốthơn!
12
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
3.2 Khai báo và ₫ịnh nghĩahàm
 Định nghĩahàm: tạomãthựcthihàm
int SumInt(int a, int b) {
int Total = 0;
for (int i = a; i <= b; ++i)
Total += i;
return Total;
}
 Khai báo hàm thuần túy: không tạomãhàm
int SumInt(int a, int b);


 Tại sao và khi nào cần khai báo hàm?
Tên hàm Kiểuthambiến
Kiểutrả về
Tên hàm Tham biến (hình thức)Kiểutrả về
13
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
Khai báo hàm và lờigọihàm
 Ý nghĩacủa khai báo hàm:
—Khicầnsử dụng hàm (gọihàm)
—Trìnhbiêndịch cầnlờikhaibáohàm₫ể kiểmtralờigọihàm
₫úng hay sai về cú pháp, về số lượng các tham số, kiểucác
tham số và cách sử dụng giá trị trả về.
int SumInt(int a, int b);
—Cóthể khai báo hàm ₫ộclậpvớiviệc ₫ịnh nghĩahàm(tất
nhiên phải ₫ảmbảonhất quán)
 Gọihàm: yêucầuthựcthimãhàmvớithamsố thực
tế (tham trị)
int x = 5;
int k = SumInt(x, 10);
Tên hàm Tham số (gọihàm)
Khi biên dịch chưacần
phảicó₫ịnh nghĩa
hàm, nhưng phảicó
khai báo hàm!
14
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
Khai báo hàm C/C++ ở₫âu?
 Ở phạmvi toàncục(ngoàibấtcứ hàm nào)

 Mộthàmphải ₫ượckhaibáotrướclờigọi ₫ầutiên
trong mộttệptin mãnguồn
 Nếusử dụng nhiềuhàmthìsẽ cầnrấtnhiều dòng mã
khai báo (mất công viết, dễ saivàmãchương trình
lớnlên?):
—Nếungườixâydựng hàm (₫ịnh nghĩahàm) ₫ưasẵntấtcả
phần khai báo vào trong mộttệptin => Header file (*.h,
*.hx, ) thì ngườisử dụng chỉ cầnbổ sung dòng lệnh
#include <filename>
—Mãchương trình không lớnlên, bởi khai báo không sinh mã!
 Mộthàmcóthể khai báo nhiềulầntùyý!
15
© 2004, HOÀNG MINH SƠN
Chương 3: Hàm và thư viện
Định nghĩahàmở₫âu?
 Ở phạm vi toàn cục(ngoàibấtcứ hàm nào)
 Có thể₫ịnh nghĩa trong cùng tệptin vớimãchương trình chính,
hoặctáchramộttệp tin riêng. Trong Visual C++:
*.c => C compiler,
*.cpp => C++ compiler
 Mộthàm₫ãcólờigọithìphải ₫ược ₫ịnh nghĩa chính xác 1 lần
trong toàn bộ (dự án) chương trình, trướckhigọitrìnhliênkết
(lệnh Build trong Visual C++)
 Đưatệptin mãnguồnvàodự án, không nên:
#include “xxx.cpp”
 Mộthàmcó₫ược ₫ịnh nghĩabằng C, C++, hợpngữ hoặcbằng
mộtngônngữ khác và dùng trong C/C++ => Sử dụng hàm
không cầnmãnguồn!
 Mộtthư viện cho C/C++ bao gồm:
— Header file (thường ₫uôi *.h, *.hxx, , nhưng không bắtbuộc)

—Tệptin mãnguồn(*.c, *.cpp, *.cxx, ) hoặcmã₫ích
(*.obj, *.o, *.lib, *.dll, )

×