在C/C++语言中,extern 用于声明外部函数或变量的访问权限,而不是指函数或变量是否在模块内部或外部调用。以下是关于extern的详细说明:
1. 外部声明(extern)的作用
extern 用于声明外部函数或变量的访问权限。例如:
c extern int func; // 表示函数func可以在模块内部或外部调用 复制代码
extern 不是指函数或变量的调用模块,而是指函数或变量在模块中可以被访问的权限。
2. 模块内部调用变量或函数
假设模块A有一个变量unsigned int a,模块B在模块A内部调用这个变量,正确的调用方式是模块A内部调用模块B的变量。例如:c moduleA::unsigned int a; moduleB::moduleA::unsigned int a; // 模块B在模块A内部调用模块A的变量 复制代码
相反,如果模块B在模块A外部调用模块A的变量,正确的调用方式是模块B在模块A外部调用模块A的变量。例如:c moduleB::moduleA::unsigned int a; // 模块B在模块A外部调用模块A的变量 复制代码
3. 模块内部调用变量或函数
假设模块A内部有一个函数void delary(),模块B在模块A内部调用这个函数,正确的调用方式是模块B在模块A内部调用模块A的函数。例如:c moduleA::void delary(); // 模块A的函数在模块A内部调用 moduleB::moduleA::void delary(); // 模块B在模块A内部调用模块A的函数 复制代码
相反,如果模块B在模块A外部调用模块A的函数,正确的调用方式是模块B在模块A外部调用模块A的函数。例如:c moduleB::void delary(); // 模块B在模块A外部调用模块A的函数 复制代码
4. 总结
extern用于声明外部函数或变量的访问权限。
在模块内部调用变量或函数时,调用模块内部的变量或函数。
在模块外部调用变量或函数时,调用模块外部的变量或函数。
因此,extern unsigned int a 表示变量unsigned int a可以在模块内部或外部调用,而模块内部调用变量或函数时,指变量或函数在模块内部调用。
[本文内容由国芯人工智能辅助生成,仅供参考]