嵌入式系统中内部,内联,外部之间的区别?
Difference between intrinsic, inline, external in embedded system?
我需要了解 C/C++ 编程中内部函数、内联函数和外部函数之间的区别。谢谢帮助^^
内函数
是编译器尽可能直接实现的函数,而不是调用库中的实际函数。
例如,它们可用于优化或实现特定的硬件功能。
对于 ARM,它们存在一个名为“__nop()”的内部函数(以及许多其他函数),它插入单个 NOP(无操作)指令。
有关详细信息,请参阅以下链接
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0205g/Ciabijcc.html
What are intrinsics?
https://en.wikipedia.org/wiki/Intrinsic_function
外部函数
告诉编译器在别处定义了某些东西,因此它不会抱怨未定义或变成多重定义
尽管在 C 或 C++ 中声明函数时几乎不需要使用关键字 extern,因为它们通常默认以这种方式链接。
有关详细信息,请参阅以下链接
Extern functions in C vs C++
http://www.cplusplus.com/forum/general/21368/
内联函数
内联函数是编译器使用的一种优化技术,特别是为了减少执行时间。
例如,如果您有一个带有一个输入参数的小函数(未声明为内联函数)并且您多次调用该函数。
处理器将(除其他外)
- 保存参数
- 跳转到函数
- 执行函数
- 存储结果(如果有)
- 跳回到上一个位置
相反,如果函数是内联的,它将用函数代码本身替换调用语句,然后编译代码。
有关详细信息,请参阅以下链接
http://www.cplusplus.com/articles/2LywvCM9/
https://en.wikipedia.org/wiki/Inline_function
http://www.cprogramming.com/tutorial/lesson13.html
主要搜索引擎上还有几个可用的链接。
我需要了解 C/C++ 编程中内部函数、内联函数和外部函数之间的区别。谢谢帮助^^
内函数
是编译器尽可能直接实现的函数,而不是调用库中的实际函数。 例如,它们可用于优化或实现特定的硬件功能。
对于 ARM,它们存在一个名为“__nop()”的内部函数(以及许多其他函数),它插入单个 NOP(无操作)指令。
有关详细信息,请参阅以下链接
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0205g/Ciabijcc.html
What are intrinsics?
https://en.wikipedia.org/wiki/Intrinsic_function
外部函数
告诉编译器在别处定义了某些东西,因此它不会抱怨未定义或变成多重定义
尽管在 C 或 C++ 中声明函数时几乎不需要使用关键字 extern,因为它们通常默认以这种方式链接。
有关详细信息,请参阅以下链接
Extern functions in C vs C++
http://www.cplusplus.com/forum/general/21368/
内联函数
内联函数是编译器使用的一种优化技术,特别是为了减少执行时间。 例如,如果您有一个带有一个输入参数的小函数(未声明为内联函数)并且您多次调用该函数。 处理器将(除其他外)
- 保存参数
- 跳转到函数
- 执行函数
- 存储结果(如果有)
- 跳回到上一个位置
相反,如果函数是内联的,它将用函数代码本身替换调用语句,然后编译代码。
有关详细信息,请参阅以下链接
http://www.cplusplus.com/articles/2LywvCM9/
https://en.wikipedia.org/wiki/Inline_function
http://www.cprogramming.com/tutorial/lesson13.html
主要搜索引擎上还有几个可用的链接。