关键字作用extern引用其他源文件中的函数static限制函数的作用域到当前源文件mutable允许在函数内修改声明为 const 的对象
C 函数声明中 extern、static 和 mutable 的角色:理解它们的语义和作用
在 C 中,函数声明中的 extern、static 和 mutable 关键字具有不同的语义和作用。
extern
示例:
// header.h extern int add(int a, int b); // source1.cpp #include "header.h" int main() { int sum = add(1, 2); return 0; }
在 source1.cpp 中,extern 关键字允许引用在 header.h 中声明的 add 函数,而无需包含 add 函数的定义。
static
示例:
// source1.cpp static int localFunction() { return 10; } int main() { int x = localFunction(); // 可以访问 localFunction return 0; }
由于 static 关键字,localFunction 只可以在 source1.cpp 中访问,而不能在其他源文件中访问。
mutable
示例:
// source1.cpp class MyClass { public: const int x = 10; // 不可变数据成员 mutable int y = 20; // 可变数据成员 }; void modifyConst(MyClass& obj) { obj.y++; // 允许修改 y,因为 y 是 mutable }
由于 mutable 关键字,modifyConst 函数可以修改 MyClass 类的 y 数据成员,即使 y 是 const 的。
理解这些关键字的语义和作用对于编写健壮而有效的 C 程序至关重要。
以上是C++ 函数声明中 extern、static 和 mutable 的角色:理解它们的语义和作用的详细内容。更多信息请关注PHP中文网其他相关文章!