【发布时间】:2012-05-09 20:14:22
【问题描述】:
我正在用 C 编程。我想要一些关于静态和内联函数的描述。我知道,如果我们将一个函数设为静态,那么它向编译器表明它仅在一个翻译单元的内部链接下。 我对静态和内联有以下疑问:
- 如果我们将函数设为 static ,我们可以在其他翻译单元中使用它...即其他 .c 文件吗?如果是..如何?
- 如果我们将函数设为静态内联,那么有什么区别?编译器将如何处理它?
- 将函数设为静态会产生与宏相同的效果吗?
- 将函数处理为内联函数取决于编译器,具体取决于大小。那么有什么方法可以强行使其被视为内联?
- 我们如何使用内联和静态函数进行优化?
请对上述内联内容有所了解。 平台是Linux,gcc编译器,C语言。
【问题讨论】:
-
在翻译单元中声明为静态的函数在其他翻译单元中不可见。不过,可以在多个翻译单元中重新定义它。
标签: c linux optimization gcc inline