¿Cuál es la diferencia entre las dos declaraciones siguientes:declaraciones ambiguas
1. int foo(int);
2. int foo(int());
no estoy seguro de si las dos declaraciones son equivalentes. ¿Qué hace que (2)
sea diferente de (1)
?
¿Cuál es la diferencia entre las dos declaraciones siguientes:declaraciones ambiguas
1. int foo(int);
2. int foo(int());
no estoy seguro de si las dos declaraciones son equivalentes. ¿Qué hace que (2)
sea diferente de (1)
?
int foo(int);
es la declaración de una función de tomar un entero como argumento y devuelve un número entero, así
int foo(int());
declara una función de tomar como argumento "un puntero a una función que devuelve int
y teniendo {sin argumentos [en C++] y un número no especificado de argumentos [en C]} "y devolver un número entero.
(2)
es equivalente a int foo(int (*pf)())
y int foo(int f())
sin argumentos? Creo que te refieres a tomar argumentos no especificados pero no variados. '(void)' es la forma de especificar "sin argumentos". –
@R Creo que solo es C, no C++ – Tom
@R: Lo siento, me he perdido. Agregado a mi publicación. –
Salida http: //cdecl.org ... esto será útil ... – liaK