当前位置: 首页 > news >正文

C语言中对关键字和标识符的理解

1.关键字(keyword)

定义:被C语言赋予了特殊含义,用做专门用途的字符串(或单词)

特点:全部关键字都是小写字母

举例: intreturn等已经被C语言定义好了。

传统的C语言(ANSI C)有32个关键字。如下:

类型具体关键字
控制语句关键字(12 个)break, case, continue, default, do, else, for, goto, if, return, switch, while
数据类型关键字(12 个)char, enum, double, long, float, int, short, signed, struct, unsigned, union, void
存储类型关键字(4 个)auto, extern, register, static
其他关键字(4 个)const, sizeof, typedef, volatile

后续,1999年,C99标准增加了5个关键字:inlinerestrict_Bool_Complex_Imaginary

2011年,C11标准又增加了7个关键字:_Alignas_Alignof_Atomic_Static_assert_Noreturn_Thread_local_Generic

2.标识符(Identifier)

定义:变量、函数、数组名、结构体等要素命名时使用的字符序列

特点:我们起的名字都叫标识符

标识符的命名规则(必须遵守的硬性规定

  • 只能由26个英文字母大小写,0-9 或 _ 组成(简记为字母数字下划线

  • 数字不可以开头

  • 不可以是关键字,但可以包含关键字

  • C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符。(会忽略超出的字符)

  • 不允许有空格。

  • 严格区分大小写字母。

标识符的命名建议(建议遵守的软性要求

  • 有意义。如:sum,name,max,year,total 等。

  • 不要出现仅靠大小写区分不同的标识符。如:name、Name 容易混淆

  • 避免名字中出现数字编号,如value1、value2等,除非逻辑上需要编号。

  • 宏定义、枚举常数、常量(只读变量)全用大写字母命名,用下划线分隔单词。

    比如: const double TAX_RATE = 0.08; //TAX_RATE 只读变量

  • 系统内部使用了一些下划线开头的标识符(比如两个下划线开头的变量名、一个下划线 + 大写英文字母开头的变量名)。比如,C99 标准添加的类型 _Bool。为防止冲突,建议用户尽量避免使用下划线开头的标识符。

  • 下划线通常用于连接一个比较长的变量名。如:max_classes_per_student。(C语言倾向下划线命名法

  • 变量名、函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz (驼峰法,小驼峰)。比如:short stuAge = 20

http://www.lryc.cn/news/281303.html

相关文章:

  • 基于Jackson封装的JSON、Properties、XML、YAML 相互转换的通用方法
  • windows的换行符与linux风格的换行符不同的问题
  • RK3568笔记九: DRM显示摄像头
  • 简单明了,汽车级LM317系列LM317D2TR4G线性电压稳压器电源设计-参数应用方案分享
  • Flink会话集群docker-compose一键安装
  • qt.qpa.plugin: Could not find the Qt platform plugin “windows“ in ““
  • vue面试题集锦
  • 2024年学鸿蒙开发就业前景怎么样?
  • Unity网络通讯学习
  • js入口函数和jQuery入口函数的区别
  • Docker-Compose编排Nginx1.25.1+PHP7.4.33+Redis7.0.11环境
  • 《新课程教学》(电子版)是正规期刊吗?能评职称吗?
  • Posgresql macOS安装和基础操作
  • ArkUI-X跨平台已至,何需其它!
  • (2024,分数蒸馏抽样,Delta 降噪分数,LoRA)PALP:文本到图像模型的提示对齐个性化
  • 近日遇到数据库及其他问题
  • 【conda】conda 版本控制和环境迁移/安装conda加速工具mamba /conda常用指令/Anaconda配置
  • “/bin/bash“: stat /bin/bash: no such file or directory: unknown
  • 基于Spring Boot+vue的云上新鲜水果超市商城系统
  • vue-ESlint代码规范及修复
  • Oracle数据库断电后不能打开的解决
  • 论文复现: In-Loop Filter with Customized Weights For VVC Intra Coding
  • 配置华为设备NQA UDP Jitter检测VoIP业务抖动
  • GitHub要求所有贡献代码的用户在2023年底前启用双因素认证
  • Nginx——强化基础配置
  • 黑马苍穹外卖学习Day6
  • 【Java 设计模式】设计原则之里氏替换原则
  • 一步步指南:从指定时长中提取需求的帧图片,高效剪辑视频
  • 【打卡】牛客网:BM93 盛水最多的容器
  • Golang 文件操作