發現C語言遞迴深度有限制

lt發表於2017-01-04

求1+2+ ... +n.

#include <cstdio>
long long add(int a)
{
    if (a==1)
        return 1;
    else
        return add(a-1)+a;
}
int main()
{
    printf("%lld",add(66000));
}

異常退出。65000呼叫還是好的,懷疑最高64K。 在64位linux上

[oracle@redflag11012501 ~]$  ulimit -s
10240
[oracle@redflag11012501 ~]$ g++ rcur.cpp
[oracle@redflag11012501 ~]$ ./a.out
2178033000

相關文章