有一般递回会产生堆叠溢位，而尾端递回不会：这段代码中，前者（第一句）进入无穷回圈（Infinite loop），但不会产生堆叠溢位；后者（第二句）则会产生堆叠溢位。
防止堆叠溢位.多数无限递回出现原因，都是基于程式本身没有错误检测机制：int factorial( const int *const n ){如果在这里的codice_1是负数则会出现无限递回。其实，这段程式可以简单地加以修改，把codice_1的型别由整数改为非负整数即可解决：unsigned int