1. 预处理指令
在C语言中,预处理指令是在编译之前由预处理器处理的指令,以 # 开头,不以分号 ; 结尾。
1.1 #include 预处理指令
- 作用:将一个头文件的内容包含到当前文件中。
- 两种形式:
#include <>:- 系统直接按系统指定的目录检索头文件。
- 通常用于包含标准库头文件,如
#include <stdio.h>。
#include "":- 首先以当前文件所在目录作为起点检索头文件,如果找不到,再按系统指定的目录检索。
- 通常用于包含用户自定义的头文件,如
#include "myheader.h"。
2. 注释
注释是程序中用于解释代码的文字,不会被编译器执行,但对程序员理解代码非常重要。
2.1 注释的分类
- 单行注释:
- 语法:
// 被注释内容 - 使用范围:可以在任何地方使用,如函数外面、里面,或每一条语句后面。
- 作用范围:从
//到这一行末尾。 - 示例:c
// 这是一个单行注释 int age = 25; // 定义一个变量表示年龄
- 语法:
- 多行注释:
- 语法:
/* 被注释内容 */ - 使用范围:可以在任何地方使用。
- 作用范围:从
/*到最近的*/。 - 示例:c
/* 这是一个多行注释 可以跨越多行 */
- 语法:
2.2 注释的注意点
- 单行注释:
- 可以嵌套单行注释和多行注释。
- 示例:c
// 单行注释 // 嵌套单行注释 // 单行注释 /* 嵌套多行注释 */
- 多行注释:
- 可以嵌套单行注释,但不能嵌套多行注释。
- 示例:c
/* 多行注释 // 嵌套单行注释 不能嵌套多行注释 */
2.3 使用注释的好处
- 提高代码可读性:
- 注释可以帮助其他程序员或未来的自己快速理解代码的意图。
- 整理实现思路:
- 在编写代码之前,先写注释可以帮助程序员理清思路。
- 方便调试和维护:
- 注释可以记录代码的修改历史或特殊处理的原因。
3. 代码规范
良好的代码规范可以提高代码的可读性和可维护性。
3.1 示例
c
// 作者:贾修
// 描述:这段代码的作用
/*
哈哈哈
/*嘻嘻嘻*/ // 错误:多行注释不能嵌套多行注释
呵呵呵
*/3.2 代码规范要点
- 一行里最多包含一条语句:
- 示例:c
int a = 10; // 正确 int b = 20; int c = 30; // 不推荐
- 示例:
- 同级别的语句应该上下对齐:
- 示例:c
if (a > b) { printf("a is greater than b\n"); } else { printf("b is greater than a\n"); }
- 示例:
- 在合适的时候使用空格和空行:
- 示例:c
int sum = a + b; // 运算符前后加空格 printf("%d\n", sum); // 逗号后加空格
- 示例:
4. 数据
在C语言中,数据是程序操作的基础,包括常量和变量。
4.1 常量
常量是程序运行过程中值不能被改变的量。
4.1.1 关键字
- C语言中预先保留了32个关键字,如
int、float、return等。 - 特点:
- 所有关键字都是由小写字母构成的。
- 在开发工具中会显示特殊颜色。
4.1.2 字符常量
- 用单引号
''括起来,如'A'、'1'。 - 特殊情况:转义字符,如
'\n'(换行符)、'\0'(空字符)。
4.1.3 字符串常量
- 用双引号
""括起来,如"Hello"、"123"。
4.2 变量
变量是程序运行过程中值可以被改变的量。
4.2.1 变量的定义
- 标识符:
- 用于标识变量、函数等的名称。
- 命名规则:
- 不能是关键字。
- 只能由字母、数字、下划线组成。
- 第一个字符必须为字母或下划线。
- 区分大小写,如
Fun和fun不同。
- 命名规范:
- 望文生义:如
name表示名字,age表示年龄。 - 驼峰命名:如
lastChangeTime、oldName。
- 望文生义:如
4.2.2 变量的作用
- 存储程序中需要变化的数据,如年龄、计数器等。
总结
- 预处理指令:如
#include用于包含头文件。 - 注释:单行注释
//和多行注释/* */,用于解释代码。 - 代码规范:提高代码的可读性和可维护性。
- 常量与变量:常量是固定值,变量是可变化的值,标识符的命名需遵循规则和规范。
