首先,对不起我的英语。
由于 GCC 完全忽略了内联说明符,所以我很难知道一个函数何时被我标记为内联。我想了解的是,当您对相同的函数进行一些重新声明(在相同的翻译单元或不同的翻译单元中)时,您的函数何时或在何种情况下被标记为内联(不管编译器会做什么)用你的提示)。
例如:
inline void print();
void print();
或者:
void print();
inline print();
用不同的内联说明符重新声明函数是什么意思?一个更复杂的例子:
#include <iostream>
void print();
int main()
{
print(); // (1)
}
inline void print() { std::cout << "HELLO" << std::endl; }
从 C++ 的排他性角度而不是从编译器的角度来看,print
函数是 inline 的(1)
吗?
我无法简明扼要地提出我的问题,但我认为该消息已收到:) 我试图了解何时应该将函数标记为内联,何时不从 C++ 和程序员的角度来看(无论将编译器使用您的函数生成)。