Trường Đi h c Khoa h c T nhiên
Khoa Công ngh thông tin
B môn Tin h c c ơ s
1
Đng Bình Ph ương
dbphuong@fit.hcmus.edu.vn
NH P MÔN L P TRÌNH
HÀM NÂNG CAO
(PH N 2)
VC
VC
&
&
BB
BB
22
N i dung
Hàm nâng cao (ph n 2)
Tham số …1
Khuôn mẫu hàm2
Nạp chồng hàm3
Nạp chồng toán tử4
VC
VC
&
&
BB
BB
33
Tham s
Khai báo
Ý nghĩa
Hàm có s l ượng tham s không bi t tr ế ước và
thường cùng ki u (không được là char,
unsigned char, float).
Ph i có ít nh t 1 tham s bi t tr ế ước.
Tham s đt cu i cùng.
Hàm nâng cao (ph n 2)
<kiểu trả về> <tên hàm>(<dsts biết trước>, )
{
}
VC
VC
&
&
BB
BB
44
Tham s
Ví d
Hàm nâng cao (ph n 2)
void XuatTong1(char *msg, int n, )
{
// Các lệnh ở đây
}
void XuatTong2(char *msg, )
{
// Các lệnh ở đây
}
int Tong(int a, )
{
// Các lệnh ở đây
}
VC
VC
&
&
BB
BB
55
Truy xu t danh sách tham s
S d ng ki u và các macro sau ( stdarg.h)
va_list : ki u d li u ch a các tham s có
trong …
va_start(va_list ap, lastfix) : macro thi t l p ế ap
ch đến tham s đu tiên trong … v i lastfix là
tên tham s c đnh cu i cùng.
type va_arg(va_list ap, type) : macro tr v
tham s có ki u type ti p theo.ế
va_end(va_list ap) : macro giúp cho hàm tr
v giá tr m t cách “bình th ường”.
Hàm nâng cao (ph n 2)