2 cách để extern function trong C

Mọi người cho em hỏi 2 cách extern này khác nhau ở điểm nào với ạ
1: extern void function( int, char*, int );
2: extern void function( int a, char* b, int c );
Và khi em muốn thêm 1 tham số mới cho hàm và gán nó = 0 luôn như bên dưới để không phải sửa ở nhiều lời gọi hàm thì có phải là nếu lời gọi hàm có giá trị tham số c khác 0 thì sẽ sử dụng giá trị tham số c, còn nếu chỉ gọi function(a, b) thì tham số c sẽ mặc định bằng 0 đúng không ạ?
extern void function( int a, char* b, int c=0 );

Mọi người cho em hỏi 2 cách extern này khác nhau ở điểm nào với ạ
1: extern void function( int, char*, int );
2: extern void function( int a, char* b, int c );

Không, chỉ là đặt tên cho parameters thôi.

Và khi em muốn thêm 1 tham số mới cho hàm và gán nó = 0 luôn
extern void function( int a, char* b, int c=0 );

Chắc không phải là “thêm” mà là “re-assign” nhỉ? Bởi vì số lượng parameter đâu thay đổi?

Còn việc nó có legal không thì… chắc có đấy (tui chưa thử bao giờ :v)

The extern keyword means “declare without defining”. In other words, it is a way to explicitly declare a variable, or to force a declaration without a definition
Reference: Wiki - External Variable

For non-template functions, default arguments can be added to a function that was already declared if the function is redeclared in the same scope
Reference: CppReference - Default argument

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?