函数链接性
C++变量根据链接性可分为外部变量和内部变量,C++函数也有链接性,也可分为外部函数和内部函数。
普通的函数就是外部函数,由static修饰的函数为内部函数。
// 外部函数
void global_fun();
// 内部函数
static internal_fun();
外部函数的使用
C++外部变量的使用规则是一处声明,多处引用,而且要使用extern关键字来引用。
而C++的外部函数也是如此,只不过可以省略extern关键字。但是通常会加上extern关键字,表示是外部函数。
// file1.cpp
void show()
{
std::cout << "show..." << std::endl;
}
// file2.cpp
// extern 表明使用外部函数,但是可以省略
extern void();
int main()
{
show();
return 0;
}
使用C库的函数
C和C++编译函数的原理是不一样的,现在如果有一个C库,如果在C++中链接到C库中的函数呢?
// extern 表示使用外部函数,"C"表示链接的语言为C
extern "C" void show();
int main()
{
// 使用C库的show()
show();
reuturn 0;
}