Les paramètres de la fonction max nombre

Je n'ai trouvé aucune limitation de la fonction de comptage des paramètres dans le standard C99 et je suppose que c'est seulement limité par la taille de la pile.

Cependant, j'ai écrit un programme de test simple pour illustrer le comportement d'une fonction avec un grand nombre de paramètres. Quand il est sur le 10k, j'obtiens l'erreur suivante sur gcc (gcc version 4.5.3 sur Cygwin):

/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o):(.text+0xa9): undefined reference to `_WinMain@16'

Je me rends compte qu'un tel grand nombre de paramètres est peu probable, mais je me demande ce paramètre de le compilateur détermine cette limite?

MODIFIER

script pour générer une source 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
Soins de partager le code qui a causé cela?
Shaiters j'ai écrit quelques sh-script pour générer des sources. Voir updt

OriginalL'auteur triclosan | 2012-01-27