C头文件里面的函数声明用static和extern的区别是什么
时间: 2024-03-12 08:48:06 浏览: 61
C中的auto、static、register和extern的区别
5星 · 资源好评率100%
在C头文件中,函数声明中的`static`和`extern`关键字都是用来描述函数的存储类别的。
`static`存储类别的函数声明表示该函数仅在当前文件中可见,即该函数只能在当前文件中被调用,无法被其他文件调用。这种函数通常用于实现库中的私有函数或者内部工具函数。例如:
```
static int add(int x, int y); // 声明了一个只在当前文件中可见的add函数
```
`extern`存储类别的函数声明表示该函数在其他文件中定义,当前文件只是引用该函数,而不是定义该函数。这种函数通常用于声明库或者模块中的公共函数。例如:
```
extern int printf(const char *format, ...); // 声明了一个在其他文件中定义的printf函数
```
总的来说,`static`和`extern`关键字用来描述函数的可见性和链接性,对于头文件中的函数声明来说,它们的作用是告诉编译器如何处理函数的存储和链接。
阅读全文