extern只能写在外部嘛
时间: 2023-11-21 13:18:13 浏览: 43
不完全是这样。`extern`关键字通常用于在一个文件中声明一个全局变量或函数,该变量或函数在其他文件中定义。它可以在函数内部使用,但必须在函数之外声明。如果在函数之内使用变量或函数,则需要使用`extern`关键字将其声明为全局变量或函数。所以,`extern`可以写在函数内部,但是它的作用范围仅限于该函数。
相关问题
extern外部调用
回答: extern关键字用于声明一个变量或函数是在其他文件中定义的。它的作用是扩大变量或函数的作用域,使其可以在当前文件中进行外部调用。在C语言中,extern只能修饰全局变量,不能修饰局部变量。局部变量在运行时才在栈部分分配内存。[1]在使用extern进行外部调用时,可以在一个文件中定义变量或函数,然后在其他文件中使用extern关键字进行声明,以便在其他文件中使用该变量或函数。例如,可以在一个C文件中定义变量int a,然后在头文件中使用extern int a进行声明,再在其他文件中包含该头文件,就可以在其他文件中使用该变量a了。[2]在C++中,extern关键字的用法与C语言类似。可以在一个文件中定义变量或函数,然后在其他文件中使用extern关键字进行声明,以便在其他文件中使用该变量或函数。例如,在一个C++文件中定义函数void func_1(),然后在另一个文件中使用extern void func_1()进行声明,就可以在该文件中调用函数func_1了。[3]
c++extern声明外部函数
在C++中,使用extern声明可以在一个文件中调用其他文件中定义的函数,或者说将该函数的作用域扩展到本文件。extern声明的形式是在函数原型基础上加上关键字extern。在程序中经常需要调用其他文件中的外部函数,为了方便编程,C++允许在声明函数时省略extern关键字。例如,在主文件中可以使用extern声明来调用其他文件中定义的函数。\[1\]
举个例子,假设有一个test.cpp文件中定义了一个函数,我们可以在主文件中使用extern声明来调用这个函数。首先,在test.h文件中声明外部函数,然后在test.cpp文件中定义外部函数并进行初始化。最后,在主文件中使用extern关键字来调用外部函数。\[2\]
另外,C++中还有内部函数,也称为静态函数。使用内部函数可以使函数只局限于所在文件,如果在不同的文件中有同名的内部函数,它们互不干扰。通常将只能由同一文件使用的函数和外部变量放在一个文件中,并在它们前面加上static关键字使之局部化,其他文件不能引用这些函数和变量。\[3\]
#### 引用[.reference_title]
- *1* *3* [简单讲解C++的内部和外部函数以及宏的定义](https://blog.csdn.net/weixin_39663258/article/details/117269869)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [C++声明extern变量和extern函数的用法](https://blog.csdn.net/wenchm/article/details/130765956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文