extern int globalVariable = 0;这样的操作是否可取
时间: 2024-04-16 17:23:54 浏览: 12
在C语言中,使用 `extern` 关键字来声明变量是为了告诉编译器该变量在其他文件中已经定义。然而,一般情况下不建议在声明时就进行赋值。因此,`extern int globalVariable = 0;` 这样的操作是不可取的。
如果你想在其他文件中使用这个全局变量,可以在声明时使用 `extern` 关键字,而不进行赋值操作。然后,在定义这个全局变量的文件中进行赋初值的操作。
例如,在一个文件中声明全局变量:
```c
// file1.h
extern int globalVariable;
```
然后,在另一个文件中定义并赋初值:
```c
// file1.c
int globalVariable = 0;
```
这样,其他文件就可以通过包含 `file1.h` 来访问和使用这个全局变量。
总结来说,`extern int globalVariable = 0;` 这样的操作不符合一般的编程规范,建议将赋值操作放到定义变量的地方进行。
相关问题
extern int globalVariable = 0;这样的操作会出现什么问题?
在C语言中,`extern int globalVariable = 0;` 这样的操作会导致编译错误。这是因为在使用 `extern` 关键字声明变量时,变量不能进行初始化赋值。
当你使用 `extern` 关键字声明一个变量时,它告诉编译器该变量在其他文件中已经定义。因此,在声明时不需要进行赋初值的操作。如果你在 `extern` 声明时进行了赋值操作,编译器会认为它是一个定义,并且会在编译时报错。
如果你想为 `extern` 声明的变量赋初值,应该将赋值操作放在变量的定义处,而不是在声明处。
例如,在一个文件中进行变量的定义和赋初值:
```c
// file1.c
int globalVariable = 0;
```
然后,在其他文件中使用这个全局变量的外部声明:
```c
// file2.c
extern int globalVariable;
```
这样,全局变量可以在其他文件中使用,并且在定义处进行了赋初值的操作。
extern int
`extern int`是一种变量或函数声明,它表示该变量或函数在其他文件中定义。在当前文件中使用`extern int`声明的变量或函数,编译器会在链接时在其他文件中查找其定义。这种声明通常用于在多个文件中共享变量或函数。
例如,引用中的`extern int p(void);`声明了一个函数`p`,该函数在另一个文件中定义。在`main`函数中调用`p`函数时,编译器会在链接时查找`p`函数的定义。
另外,`extern int i;`声明了一个整型变量`i`,该变量在另一个文件中定义。在引用中,`int i = 3;`定义了变量`i`的值为3。在引用中,`i`变量被使用,编译器会在链接时查找`i`变量的定义。