标识符命名规则(C语言)
warning:
这篇文章距离上次修改已过1856天,其中的内容可能已经有所变动。
C语言标识符分三种:
- 保留字(关键字)
- 预定义标识符
- 用户标识符
保留字(关键字)
C语言保留关键字(C99):
char
字符型short
短整型int
整形unsigned
无符号整形long
长整形float
单精度浮点数double
双精度浮点数struct
结构体union
共用体void
字面意思是“无类型”,void *
则为“无类型指针”,void *
可以指向任何类型的数据。enum
枚举类型signed
有符号整形,默认省略。const
限定一个变量不允许被改变,产生静态作用。volatile
是一个特征修饰符,作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值。typedef
在计算机编程语言中用来为复杂的声明定义简单的别名,它与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register
等关键字不能出现在同一个表达式中。auto
是一个C/C++语言存储类型,仅在语句块内部使用,初始化可为任何表达式,其特点是当执行流程进入该语句块的时候初始化可为任何表达式。register
暗示编译程序相应的变量将被频繁地使用,如果可能的话,应将其保存在CPU的寄存器中,以加快其存储速度。static
定义一个内部函数(关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数),函数的作用域仅局限于本文件,与面向对象的编程语言不同作用!extern
可置于变量或者函数前,以表示变量或者函数的定义在别的文件中。提示编译器遇到此变量或函数时,在其它模块中寻找其定义。break
其作用大多情况下是终止所在层的循环。在 C语言 的 switch(开关语句)中,break 语句还可用来在执行完一个 case(分支)后立即跳出当前 switch 结构。switch
经常跟case一起使用,是一个判断选择代码。其功能就是控制流程流转的。case
见上条default
在c语言中与switch语句配套使用。continue
表示结束本次循环,而不终止整个循环的执行。而是结束本次循环,进行下一次循环。do
开始一层循环,需要和while配合使用。if
分支结构的一种。else
需要和if配合使用。for
用于循环处理的语句。goto
跳转到指定标号,其中标号需要申请,在对应的过程的申请的位置写label <标号>;其中,标号必须为byte型整数。return
函数的返回值。while
一种基本循环模式。当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环。sizeof
判断数据类型或者表达式长度的运算符。对 sizeof() 的处理都是在编译阶段进行。_Bool
布尔类型_Complex
复数类型,C99提供了三种复数类型:float_Complex
、double_Complex
和long double_Complex
。_Imaginary
虚数类型,C99提供了三种虚数类型:float_Imaginary
,double_Imaginary
,以及long double_Imaginary
。虚数类型只有虚部,没有实部。inline
内联函数,作用是将函数展开,把函数的源代码复制到每一个调用它的地方。在程序运行过程中可以直接执行函数代码,而不发生跳转、压栈等一般性函数操作。可以节省时间,也会提高程序的执行速度。注意:gcc编译器对其定义不同!restrict
类型限定符,用于告诉编译器,对象已经被指针所引用,不能通过除该指针外所有其他直接或间接的方式修改该对象的内容。
预定义标识符
预定义标识符是C语言中有特定意义的标识符。预定义标识符也可以作为用户标识符使用,但是会导致原有功能丧失。非常不建议占用预定义标识符!
- 一些常用函数,例如:
printf
、scanf
、sin
; - 编译预处理命令名,例如:
define
、include
;
用户标识符
用户标识符一般是:
- 自定义的变量
- 自定义的函数名
用户标识符命名规则:
- 必须使用字母(A-Z和a-z)、数字(0-9)和下划线(
_
) - 不能以数字作为开头,但字母和下划线可以
- 不能是保留字(关键字)
- 大小写敏感,严格区分大小写