c 函数声明前面加extern
时间: 2024-01-23 22:38:19 浏览: 25
extern关键字用于声明一个全局变量或函数在其他文件中定义。它告诉编译器该变量或函数在当前文件中并没有定义,而是在其他文件中定义。
对于函数的声明,extern关键字可选,因为函数声明默认是外部链接的。但是,如果你想显式地声明函数为外部链接,可以在函数声明前面加上extern关键字。
例如:
```c
extern int globalVariable;
extern void someFunction();
int main() {
// 使用全局变量和函数
return 0;
}
```
在上面的示例中,我们使用extern关键字来声明了一个全局变量globalVariable和一个函数someFunction,表示它们在其他文件中定义。然后,在main函数中可以使用这些变量和函数。
相关问题
如何声明为extern
在C语言中,如果要将一个变量或函数声明为extern,需要在其前面加上extern关键字。这样声明的变量或函数可以在其他文件中被使用,但是并不会在当前文件中分配存储空间。
例如,在一个文件中声明一个全局变量:
```c
int count;
```
如果我们想在另一个文件中使用该变量,可以在该文件中添加如下声明:
```c
extern int count;
```
这样就告诉编译器,count变量是在其他文件中定义的,并且在当前文件中只是一个声明。编译器在链接时会找到该变量的实际定义并进行链接。
类似地,如果我们要在一个文件中声明一个函数为extern,可以这样写:
```c
extern void my_func();
```
这样就告诉编译器,my_func函数是在其他文件中定义的,并且在当前文件中只是一个声明。编译器在链接时会找到该函数的实际定义并进行链接。
C 变量前面const static extern详细解释
在 C 语言中,变量的前缀可以用来修饰变量的类型、作用域、存储方式等属性。
1. const
const 是常量修饰符,用于修饰变量,表示该变量的值不能被修改。例如:
```
const int a = 10;
```
这里定义了一个 int 类型的常量 a,其值为 10,不能被修改。
2. static
static 是静态修饰符,用于修饰变量和函数。对于变量,它表示该变量的生命周期与程序的运行周期相同,即在程序运行期间只分配一次内存。对于函数,它表示该函数只能在当前文件中被调用,不能被其他文件调用。例如:
```
static int b = 20;
static void print() {
printf("Hello World!\n");
}
```
这里定义了一个静态变量 b,其生命周期与程序的运行周期相同,只会被分配一次内存;同时也定义了一个静态函数 print,它只能在当前文件中被调用。
3. extern
extern 是外部变量修饰符,用于说明该变量不是在当前文件中定义的,而是在其他文件中定义的。例如:
```
extern int c;
```
这里声明了一个 int 类型的变量 c,但并没有给出其定义,而是告诉编译器在其他文件中可以找到它的定义。在使用 extern 修饰符声明的变量,在当前文件中只能被引用,不能被修改。