static关键字
C | 变量位置 | 访问权限 | 值 |
---|---|---|---|
静态局部变量 | 全局存储区 | 只能被该变量所在作用域内的变量及函数访问 | 不赋值默认赋值为0 |
局部变量 | 栈/堆 | 只能被该变量所在作用域内的变量及函数访问 | 不赋值则为随机值(分配内存后内存所存的值) |
静态全局变量 | 全局存储区 | 只能被该源文件的变量及函数访问 | 不赋值默认赋值为0 |
全局变量 | 全局存储区 | 能被包含该源文件的文件及该源文件的变量及函数访问 | 不赋值默认赋值为0 |
静态函数 | 只能被该源文件的变量及函数访问 | ||
普通函数 | 能被包含该源文件的文件及该源文件的变量及函数访问 |
C++(包含C的作用) | 变量位置 | 访问权限 | 值 |
---|---|---|---|
静态成员变量 | |||
成员变量 | |||
静态成员函数 | |||
成员函数 | |||
静态类 | 不存在的 |
extern 关键字
- 定义:作为修饰符,修饰变量或函数,来声明变量或函数。
- 作用:
- extern “C”{ } //在C++代码要使用C的库文件时使用,使C++编译器按C编译器处理函数的方式来处理函数。因为C++有函数重载,与C处理函数的方式不同,使用extern能更好的链接到C的库文件从而使用C编写的函数。
- 修饰变量或函数,以标识该声明的定义在其他文件中,提示编译器遇到声明的变量或函数,