C语言中的关键字与标识符详解

简介: C语言中的关键字与标识符详解

1. 关键字(keyword)

定义:

关键字是C语言中预定义的一组特殊字符串,它们具有特定的含义和用途。在程序编译过程中,编译器会根据这些关键字执行相应的操作。

特点:

所有C语言的关键字均采用小写字母形式。

举例:

例如,在一个简单的"HelloWorld"案例中,我们可能会遇到intreturn等关键字。int用于声明整型变量,而return用于从函数返回值。


C语言传统关键字(ANSI C):

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

随着标准的发展,C99增加了5个关键字:inline, restrict, _Bool, _Complex, _Imaginary;C11又新增了7个关键字:_Alignas, _Alignof, _Atomic, _Static_assert, _Noreturn, _Thread_local_Generic

说明:

  • ANSI C、C99和C11标准在大多数情况下可以兼容使用,无需过分关注版本差异。
  • 对于关键字的学习,建议结合实践逐步掌握,不必刻意死记硬背。

2. 标识符(Identifier)

定义:

在C语言中,标识符是指用户为变量、函数、数组名、结构体等编程要素所起的名字,它由一系列字符组成。

命名规则:

  • 标识符只能包含字母(大小写均可)、数字(但不能作为首字符)以及下划线。
  • 不得与C语言的关键字相同,尽管标识符内可包含关键字。
  • C99和C11允许更长的标识符,但编译器只识别前63个字符,超出部分会被忽略。
  • 标识符不允许包含空格。
  • C语言严格区分大小写,因此相同的单词但大小写不同会被视为不同的标识符。

命名建议:

  • 命名时应力求有意义,做到“见名知意”,如sumnamemaxyeartotal等。
  • 避免仅通过大小写来区分不同的标识符,以免混淆。
  • 尽量避免在标识符中使用数字编号,除非逻辑上确实需要编号。
  • 按照约定,常量(如宏定义、枚举常数、只读变量)通常用全大写字母命名,并使用下划线分隔单词,如TAX_RATE
  • 为了防止与系统内部使用的标识符冲突,建议避免使用以下划线开头的标识符,特别是双下划线或单下划线加大写字母开头的名称。
  • 下划线通常用于连接较长的变量名,提高可读性,如max_classes_per_student
  • 在多单词组成的变量名和函数名中,推荐采用驼峰命名法(小驼峰),即第一个单词首字母小写,后续每个单词首字母大写,如stuAgetankShotGame

合法与非法标识符示例:

// 合法的标识符
a, BOOK1, _sun, MAX_SIZE, Mouse, student23, Football, FOOTBALL, max, _add, num_1, sum_of_numbers

// 非法的标识符
$zj, 3sum, ab#cd, 23student, Foot-baii, s.com, b&c, j**p, book-1, tax rate, don't

目录
相关文章
|
3天前
|
存储 C语言
C语言中的typedef关键字:为类型定义新名称
C语言中的typedef关键字:为类型定义新名称
9 0
|
3天前
|
C语言
深入探索C语言中的sizeof关键字
深入探索C语言中的sizeof关键字
6 0
|
2月前
|
存储 程序员 编译器
C语言标识符的深入探究
C语言标识符的深入探究
26 1
|
2月前
|
存储 Serverless C语言
C语言程序设计——标识符
C语言程序设计——标识符
|
2月前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
2月前
|
存储 C语言
【C语言】数据:数据类型关键字
【C语言】数据:数据类型关键字
|
2月前
|
存储 编译器 C语言
c语言中static关键字的作用
c语言中static关键字的作用
|
2月前
|
编译器 C语言 C++
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr(下)
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr
25 0
|
2月前
|
存储 安全 编译器
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr(上)
从C语言到C++③(第一章_C++入门_下篇)内联函数+auto关键字(C++11)+范围for+nullptr
30 0
|
2月前
|
安全 编译器 C语言
C语言中的const关键字
C语言中的const关键字
21 2