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.Parámetros de función número máximo
Sin embargo, he escrito un programa de prueba simple para demostrar el comportamiento de una función con un gran recuento de parámetros. Cuando está a unos 10 k, me sale el siguiente error en gcc (gcc versión 4.5.3 de Cygwin):
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o):(.text+0xa9): undefined reference to `[email protected]'
Soy consciente de que tan grande recuento de parámetros es poco probable pero me pregunto qué parámetro del compilador determina este límite ?
EDITAR
secuencia de comandos para generar fuente de 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
Cuidado para compartir el código que causó esto? –
@Martinsh Shaiters He escrito algunos sh-script para generar fuentes. Ver updt – triclosan