No encontré ninguna limitación de los parámetros de la función de conteo en el estándar C99 y supongo que solo está limitado por el tamaño de la pila.
Sin embargo, he escrito un programa de prueba simple para demostrar el comportamiento de una función con una gran cantidad de parámetros. Cuando se trata de 10k, aparece el siguiente error en gcc (gcc versión 4.5.3 en Cygwin):
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o):(.text+0xa9): undefined reference to `[email protected]'
Me doy cuenta de que es poco probable una cantidad tan grande de parámetros, pero me pregunto qué parámetro del compilador determina este límite.
EDITAR
script para generar fuente C
#!/bin/sh
num=$1
echo "" > out.c
echo "#include <stdio.h>" >> out.c
echo "int getsum( " >> out.c
i=0
while [ $i -lt $num ]
do
((i++))
if [ $i -eq $num ]
then
echo "int p$i )" >> out.c
else
echo -ne "int p$i," >> out.c
fi
done
echo "{" >> out.c
echo -ne " return " >> out.c
i=0
while [ $i -lt $num ]
do
((i++))
if [ $i -eq $num ]
then
echo "p$i;" >> out.c
else
echo -ne "p$i + " >> out.c
fi
done
echo "}" >> out.c
echo "int main(){" >> out.c
echo "printf(\"Sum of %d elements is %d\", $num, getsum(" >> out.c
i=0
while [ $i -lt $num ]
do
((i++))
if [ $i -eq $num ]
then
echo "$i" >> out.c
else
echo -ne "$i," >> out.c
fi
done
echo "));" >> out.c
echo "return 0;}" >> out.c
gcc out.c
./a.exe
¿Te importaría compartir el código que causó esto?
– Martín Verde
27 de enero de 2012 a las 14:35
@Martinsh Shaiters, escribí algunos sh-script para generar fuentes. Ver actualización
– triclosán
27 de enero de 2012 a las 14:37