C 语言不支持命名空间。如果你想编写一个公共库,或者想命名某个“模块”,则需要给所有公共 API 的名称加上一个前缀。这些名称包括:
函数
类型
枚举值
宏
另外,每个枚举也应该加上不同的前缀,这样才能分辨某个值属于哪种枚举类型:
enum color {
COLOR_RED,
COLOR_BLUE,
...
}
关于命名,并没有太多真正的约定,你可以随意选择蛇形命名法(snake_case)或驼峰式命名法(camelCase),但请记住保持一致!由于许多标准 C 类型都采用了 ptrdiff_t、int32_t 等形式,所以有人将类型命名为 my_type_t。
static
函数或文件级别的 static(静态)变量仅限文件内部访问。这些函数或变量不会作为符号导出,因此无法在其他源文件中使用。
static 也可以用在局部变量上,可以让变量在多次函数调用之间保持值不变。你可以将其视为一个仅限于该函数使用的全局变量。你可以利用 static 计算和存储数据,以供后续调用重用。但请记住,这种使用方法与全局状态或共享状态有同样的问题,例如线程安全、递归冲突等。
|