int和extern
时间: 2023-11-06 22:05:08 浏览: 133
int是C/C++语言中的一种数据类型,用于表示整数。而extern是C/C++中的一个关键字,用于声明一个全局变量或函数,表示该变量或函数在其他文件中定义。
对于非const的全局变量,默认情况下它们在外部文件可见,可以通过添加extern关键字或不添加extern关键字来声明。这是因为非const全局变量默认情况下就是"extern"的,而const全局变量默认没有"extern",如果想在其他文件中访问const全局变量,则必须显式地添加extern关键字。
对于函数的声明,本身就是extern全局声明,只是省略了extern关键字。因为函数的声明和定义是明显区分开的,不存在重复定义问题,所以函数不需要考虑extern全局声明。extern关键字主要用于C/C++混合编译中。
需要注意的是,使用extern关键字声明的全局变量必须初始化,并且只能初始化一次。
相关问题
int Errno;和extern int Errno;
`int Errno;` 声明了一个整型变量 `Errno`,并分配了内存空间。如果在函数内部声明,那么这个变量的作用域只限于该函数内部;如果在函数外部声明,那么这个变量的作用域就是整个文件。
`extern int Errno;` 声明了一个整型变量 `Errno`,但并没有分配内存空间。它告诉编译器 `Errno` 变量在其他源文件中已经定义过了,并且在链接时会找到它的定义。因此,通常在头文件中使用 `extern` 关键字来声明全局变量,然后在源文件中定义它们。这样可以避免在多个文件中重复定义同一个变量,从而节省内存。
extern int
extern int是一个C语言的关键字,用于声明一个全局变量或函数。它表示该变量或函数在其他文件中定义,当前文件中仅做声明。
例如,如果在一个源文件中声明了一个全局变量或函数,并在另一个源文件中定义它,那么在声明的地方使用extern关键字可以告诉编译器该变量或函数是在其他地方定义的。
举个例子,假设我们有两个源文件:main.c和helper.c。在helper.c中定义了一个全局变量x,并在main.c中使用它,我们可以在main.c中使用extern来声明这个变量:
// helper.c
int x = 5;
// main.c
extern int x;
// 在这里可以使用变量x
这样编译器就知道变量x是在其他文件中定义的,并且可以正确地使用它。
阅读全文