thể trùng lặp:
function overloading in CANSI C và chức năng quá tải
ANSI C không cho phép chức năng quá tải (Tôi không chắc chắn về C99).
ví dụ:
char max(char x, char y);
short max(short x, short y);
int max(int x, int y);
float max(float x, float y);
không phải là một mã nguồn ANSI C hợp lệ.
Nên sử dụng kỹ thuật nào (hoặc ý tưởng) cho vấn đề quá tải hàm trong ANSI C?
Note:
Một câu trả lời được đổi tên chức năng, nhưng mà mẫu nên được sử dụng cho đổi tên, mà tên hàm vẫn 'tên hàm tốt'?
ví dụ:
char max1(char x, char y);
short max2(short x, short y);
int max3(int x, int y);
float max4(float x, float y);
không phải là một tốt đặt tên cho max
tên hàm.
Có thể xác định macro 'max'? ;-) –
@DidierTrosset: max chỉ là một ví dụ, hình ảnh là một hàm rất phức tạp. –
Nếu quá tải hàm quan trọng đối với bạn thì có lẽ bạn nên cân nhắc sử dụng C++ thay vì C? –