¿Qué significa esto?¿Qué significa "..." en una declaración de función C?
void message(int x, int y, ...)
No puedo entender qué ... es. ¿Alguien puede explicarlo?
¿Qué significa esto?¿Qué significa "..." en una declaración de función C?
void message(int x, int y, ...)
No puedo entender qué ... es. ¿Alguien puede explicarlo?
Número de parámetros no especificados/variables. Para hacer frente a esta función hay que usar el tipo va_list y va_start, va_arg y funciones va_end:
Un ejemplo tomado de here:
#include <stdlib.h>
#include <stdarg.h>
#include <stdio.h>
int maxof(int, ...) ;
void f(void);
main(){
f();
exit(EXIT SUCCESS);
}
int maxof(int n args, ...){
register int i;
int max, a;
va_list ap;
va_start(ap, n args);
max = va_arg(ap, int);
for(i = 2; i <= n_args; i++) {
if((a = va_arg(ap, int)) > max)
max = a;
}
va_end(ap);
return max;
}
void f(void) {
int i = 5;
int j[256];
j[42] = 24;
printf("%d\n",maxof(3, i, j[42], 0));
}
se pueden encontrar más detalles here
su código y sugerencia me ayuda mucho. thaks – ambika
...
denota una variable lista de argumentos a los que se puede acceder a través de va_arg, va_end and va_start.
algunos buenos programadores están aquí. usted es uno de ellos. muchas gracias – ambika
Es la variable argumento parámetro formal. Desde la perspectiva sintáctica, le permite pasar una cantidad variable de parámetros (al menos dos, que son x e y, pero aún más).
... representa el argumento final pasado como una matriz o como una secuencia de argumentos.
Una cosa relacionada que vale la pena tener en cuenta es que en C los parámetros de funciones vacías() significan lo mismo que (...), es decir, que la función puede tomar cualquier parámetro. Debe usar (void) para indicar que no necesita ninguno. En C++() significa que no toma ninguno, como uno esperaría. – Tronic
Una lista de parámetros vacía '()' no ** significa ** lo mismo que '(...)'. Una lista de parámetros vacía significa que la función toma un número fijo, pero no especificado, de aumentos. '(...)' significa que toma una cantidad variable de argumentos (y es bastante inútil, porque la función nunca podrá acceder a esos argumentos sin al menos un argumento fijo). – caf