Jaka jest różnica między dwiema następującymi deklaracjami:Niejednoznaczne deklaracje
1. int foo(int);
2. int foo(int());
Nie jestem pewien, czy oba oświadczenia są równoważne. Co sprawia, że (2)
różni się od (1)
?
Jaka jest różnica między dwiema następującymi deklaracjami:Niejednoznaczne deklaracje
1. int foo(int);
2. int foo(int());
Nie jestem pewien, czy oba oświadczenia są równoważne. Co sprawia, że (2)
różni się od (1)
?
int foo(int);
jest deklaracja funkcji biorąc liczbę całkowitą jako argument i powrocie liczbę całkowitą, a także
int foo(int());
deklaruje funkcję bierze jako argument „wskaźnik do funkcji przekazujących int
i biorąc {żadnych argumentów [w C++] i nieokreślona liczba argumentów [w C]} "i zwracająca liczbę całkowitą.
(2)
jest równoważna int foo(int (*pf)())
i int foo(int f())
sobą nie argumenty? Uważam, że masz na myśli podejmowanie nieokreślonych, ale nie variadycznych argumentów. '(void)' jest sposobem określenia "brak argumentów". –
@R Wierzę, że to tylko C, a nie C++ – Tom
@R: Przepraszam, że tęskniłem. Dodano do mojego postu. –
Odjazd http: //cdecl.org ... To będzie pomocny ... – liaK