C++ GCC编译器中的内联深度
我已经研究过了 内联说明符是编译器应该尝试的提示 以内联方式生成代码[…],而不是为 函数一次,然后通过通常的函数调用调用 机制 问题:C++ GCC编译器中的内联深度,c++,optimization,gcc,inline-functions,C++,Optimization,Gcc,Inline Functions,我已经研究过了 内联说明符是编译器应该尝试的提示 以内联方式生成代码[…],而不是为 函数一次,然后通过通常的函数调用调用 机制 问题: 如果关闭了GCC编译器的优化,是否忽略内联说明符 当递归调用内联函数时,哪个编译器选项决定“内联深度”,直到它遵循正常的函数调用机制 如果在for循环中调用内联函数,是否会出现相同的“内联深度” 如果关闭了GCC编译器的优化,是否忽略内联说明符 是的,如果在GCC中关闭优化,则不会内联任何函数。这相当于在编译期间使用-fno inline标志。看到这个了吗 -
-fno inline
标志。看到这个了吗
-fno内联
不要注意内联关键字。通常,此选项用于防止编译器内联扩展任何函数。请注意,如果不进行优化,则无法内联扩展任何函数。
当递归调用内联函数时,哪个编译器选项决定“内联深度”,直到它遵循正常的函数调用机制
选项
max inline recursive depth
和max inline recursive depth auto
。默认深度为8。除了-fno-inline,还需要使用-fno-Default-inline来禁用类中的内联函数。
当您使用gdb进入这些内联函数时,这非常有用