Quelle est la différence entre les deux déclarations suivantes:déclarations ambigües
1. int foo(int);
2. int foo(int());
Je ne suis pas sûr si les deux déclarations sont équivalentes. Qu'est-ce qui différencie (2)
de (1)
?
Quelle est la différence entre les deux déclarations suivantes:déclarations ambigües
1. int foo(int);
2. int foo(int());
Je ne suis pas sûr si les deux déclarations sont équivalentes. Qu'est-ce qui différencie (2)
de (1)
?
int foo(int);
est la déclaration d'une fonction qui prend un entier comme argument et retournant un entier et
int foo(int());
déclare une fonction qui prend comme argument « un pointeur vers une fonction renvoyant int
et en prenant {aucun argument [en C++] et un nombre indéterminé d'arguments [en C]} "et renvoyant un entier.
(2)
est équivalent à int foo(int (*pf)())
et int foo(int f())
sans argument? Je crois que vous voulez dire prendre des arguments non spécifiés mais pas variés. '(void)' est le moyen de spécifier "no arguments". –
@R Je crois que c'est seulement C, pas C++ – Tom
@R: Désolé, j'ai raté ça. Ajouté à mon message. –
Check out http: //cdecl.org ... ce sera utile ... – liaK