C99標準でcount関数のパラメータに制限がありませんでした。スタックサイズによってのみ制限されると思います。ファンクションパラメータの最大値
しかし、パラメータの数が多い関数の動作を示すための簡単なテストプログラムを作成しました。そのおよそ10kが、私はgccの上の次のエラー(Cygwinの上のgccのバージョン4.5.3)を取得する場合:
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../libcygwin.a(libcmain.o):(.text+0xa9): undefined reference to `[email protected]'
私はパラメータのような大規模なカウントがそうであることを認識したが、私はこの制限を決定し、コンパイラのどのようなパラメータ不思議?
EDIT
スクリプトは、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
ケア? –
@Martinsh Shaiters私はソースを生成するためにshスクリプトを書いています。 updt – triclosan