Note
由于在Obsidian中过大的表格渲染会卡顿, 所以术语表按照术语首次出现的章节划分为多个子表. (这并不影响检索)
Chapter2-基本概念
术语 | 英文 | 说明 |
---|---|---|
指令 | directives | # 开头的语句 |
语句 | statements | 语句在程序中以分号; 结尾(少数例外如控制结构中的复合语句) |
函数 | function | 类似其他语言中的"过程"或"子例程", 是用来构建程序的构建块. |
预处理器 | preprocessor | 预处理器执行# 开头的指令, 并执行替换操作 |
编译器 | compiler | 将程序编译为机器指令 (目标文件) |
链接器 | linker | 将编译器产生的目标文件与其他的依赖文件链接在一起, 最终生成可执行文件 |
集成开发环境 | integrated development environment, IDE | VsCode, CLion等 |
库函数 | library function | C语言提供的函数 |
变量 | variable | 临时存放数据的存储单元 |
类型 | type | 特指C语言数据变量类型 |
声明 | declarations | 为编译器所做的描述, 步骤: 1. 指定类型; 2. 变量名 |
赋值 | assignment | 变量通过赋值获得值 |
常量 | constant | 立即数 |
表达式 | expression | 是由操作数(operands)和运算符(operators)组成的计算或逻辑单元, 能够生成一个值. 它可以是变量, 常量, 函数调用, 运算符的组合等 |
初始化 | initialization | 变量具有初始值 |
未初始化(的) | uninitialized | 未赋初值的变量 |
初始化器 | initializer | 变量的初始化的初始值 (比如: int a = 8; 中8就是初始化器) |
宏定义 | micro definition | 通过#define 定义, 利用文本替换机制实现符号常量, 参数化宏等 |
标识符 | identifier | 变量, 函数, 宏和其他实体的名称 规定: 字母, 数字, 下划线 (必须以字母或者下划线开头) |
关键字 | keyword | 对于C编译器具有特殊意义, 不能作为标识符 |
记号 | token | 在不改变意思的情况下无法分割的字符组 特性: token之间对空白符 (空格, 换行) 没有限制 ![]() |
GCC | 旧称: GNU C Compiler 新称: GNU Compiler Collection (因为还可以编译Ada, C++等其他语言) | 编译器 |
GNU | GNU's Not UNIX | 对抗UNIX软件授权的项目, 可以自由开发, 改进软件, 且可以免费获取 |
Chapter3-格式化输出和输出
术语 | 英文 | 说明 |
---|---|---|
格式串 | format string | 能够识别普通字符和转换说明的字符串 |
转换说明 | conversion specification | 以% 开头表示打印过程中待填充值的占位符 |
转义序列 | escape sequence | 用于表示非打印字符或者编译器冲突字符的占位符 |
空白符 | whitespace character | 包含: 空格, 水平制表符, 换行符, 回车符, 垂直指标符, 换页符 |
Chapter4-表达式
术语 | 英文 | 说明 |
---|---|---|
算数运算符 | Arithmetic Operator | +-*/% |
关系运算符 | Relational Operator | |
逻辑运算符 | Logical Operator | |
实现定义 | implementation-defined | C标准故意对C语言的部分内容未加指定, 并认为其细节可以由"实现"来具体定义. 所谓实现是指程序在特定的平台上编译、链接和执行所需要的软件. 根据实现的不同, 程序的行为可能会有差异。 |
运算符优先级 | operator precedence | |
结合性 | associativity | 表达式中多个同优先级的运算符同时出现时, 决定它们的计算顺序的规则. 注意: 结合性无法决定单个运算左右操作数的运算顺序, 且一般左右操作数的运算顺序是未指定的. 比如: a = i + j 无法决定现计算i 还是j |
左结合的 | left associative | 运算符按从左到右的顺序计算a - b - c 等价于 (a - b) - c |
右结合的 | right associative | 运算符按从右到左的顺序计算a = b = c 等价于 a = (b = c) |
简单赋值 | simple assignment | 通过=运算符将一个值赋值给变量 v = e (e可以是变量, 常量, 复杂表达式) |
复合赋值 | compound assignment | 使用复合赋值运算符的赋值操作 (右结合性) 比如: +=, -=, *=, /=, %= |
副作用 | side effect | 运算符的其他功能 比如: =的副作用是改变左操作数的值 |
左值 | lvalue | 是一个指向某个内存位置的实体, 它可以出现在赋值语句的左侧 左值类型: 1. 变量 2. 数组元素 (通过下标访问) 3. 指针解引用 |
右值 | rvalue | C语言中的"值"就是"右值", 都是指"表达式的值". C标准中没有"右值"的概念, 只有C++中才使用这个概念 |
前缀运算符 | prefix operator | ++i |
后缀运算符 | postfix operator | i++ |
未定义行为 | undefined behavior | 后果无法预料的行为 |
序列点 | sequence point | 是一种程序执行的某个时刻,它标志着前一个表达式的计算已经完成,并且所有副作用(如变量修改)都已完成,而下一表达式的计算开始之前没有任何交集。 |
Chapter5-选择语句
未完待续...