考虑经典的阶乘函数定义方法:
#include <stdio.h>
__attribute__((always_inline)) inline int factorial(int n)
{
if (n == 1){
return 1;
} else {
return n * factorial(n - 1);
}
}
int main()
{
printf("value %d", factorial(7/*guaranteed to not overflow int*/));
}
我正在强制(gcc)内联阶乘函数。这可能会出问题。gcc在没有错误的情况下忽略了我的强制内联。这是预期的吗?