ein*_*ica 1 c syntax reserved-words language-lawyer
在 C(和其他语言)中,对变量和函数的名称使用前缀和后缀是很常见的。_x特别是,人们偶尔会在“正确的”标识符(例如_y变量等)之前或之后看到下划线的使用。_print但是,还有一种常识是避免以下划线开头的名称,以免与 C 标准发生冲突库实施。
那么,什么地方、什么地方可以使用下划线呢?
不要以下划线开头标识符。
就是这样。您可能仍然与某些特定于文件的定义发生冲突(见下文),但这些只会给您一条错误消息,您可以处理该消息。
不要以以下方式开始您的标识符:
- 一个下划线。
- 任何 1-3 个字母前缀,后跟下划线,这不是正确的单词(例如
a_,st_)memory_或者atomic_。并且不要以
_MIN或结尾您的标识符_MAX。
这些规则禁止的内容比实际保留的要多一些,但相对容易记住。
这是基于C2x 标准草案(因此涵盖了先前标准的保留)和glibc 文档。
不要使用:
__(两个下划线)。_D)。_.atomic_, memory_, memory_order_, cnd_, mtx_, thrd_, tss_LC_, SIG_, ATOMIC,TIME__t(这是 POSIX 限制;对于 C 语言本身,您可以使用此后缀,除非您的标识符以int或开头uint)其他限制是针对每个库头文件的,而不是通用的(其中一些是 POSIX 限制):
| 如果您使用头文件... | 您不能将标识符与...一起使用 |
|---|---|
dirent.h |
字首d_ |
fcntl.h |
前缀l_, F_, O_, 和S_ |
grp.h |
字首gr_ |
limits.h |
后缀_MAX(也可能是_MIN) |
pwd.h |
字首pw_ |
signal.h |
前缀sa_和SA_ |
sys/stat.h |
前缀 st_和S_ |
sys/times.h |
字首tms_ |
termios.h |
字首c_ |
当然,还有不涉及下划线的附加限制。
| 归档时间: |
|
| 查看次数: |
762 次 |
| 最近记录: |