我需要了解C / C ++编程中内在函数,内联函数和外部函数之间的区别。 Thnx寻求帮助^^
答案 0 :(得分:2)
内在功能
编译器在可能的情况下直接实现的函数,而不是在库中调用实际函数。 例如,它们可用于优化或达到特定的硬件功能。
对于ARM,它们存在一个称为“__nop()”的内部函数(以及许多其他函数),它插入一条NOP(无操作)指令。
有关详细信息,请参阅以下链接
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0205g/Ciabijcc.html
https://en.wikipedia.org/wiki/Intrinsic_function
外部功能
告诉编译器在别处定义了某些东西,所以它不会抱怨未定义或变成多重定义
虽然在C或C ++中声明函数时几乎从不需要使用关键字extern,因为它们通常默认以这种方式链接。
有关详细信息,请参阅以下链接
http://www.cplusplus.com/forum/general/21368/
内联函数
内联函数是编译器使用的一种优化技术,尤其是减少执行时间。 例如,如果您有一个带有一个输入参数的小函数(未声明为内联),并且您多次调用此函数。 处理器将(除其他外)
相反,如果函数是内联的,它将用函数代码本身替换call语句,然后编译代码。
有关详细信息,请参阅以下链接
http://www.cplusplus.com/articles/2LywvCM9/
https://en.wikipedia.org/wiki/Inline_function
http://www.cprogramming.com/tutorial/lesson13.html
主要搜索引擎上还有其他几个链接。