Funktion Parameter maximale Anzahl

Ich fand keine Einschränkung der Funktion count-Parameter in den C99-standard und ich denke, es ist nur begrenzt durch die stack-Größe.

Jedoch, das ich geschrieben habe ein einfaches test-Programm zur Veranschaulichung des Verhaltens einer Funktion mit einer großen Anzahl von Parametern. Wenn Ihr über 10k, bekomme ich die folgende Fehlermeldung auf gcc (gcc version 4.5.3 auf Cygwin):

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

Merke ich, dass eine solche große Anzahl von Parametern, ist unwahrscheinlich, aber ich Frage mich, was die parameter der compiler bestimmt diese Grenze?

BEARBEITEN

Skript zum generieren der C-Quelle

#!/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
  • Pflege zu teilen der code, der dies verursacht?
  • Shaiters ich habe geschrieben einige sh-Skript zum generieren von Quellen. Sehen updt
InformationsquelleAutor triclosan | 2012-01-27
Schreibe einen Kommentar