Skip to content

1. 预处理指令

在C语言中,预处理指令是在编译之前由预处理器处理的指令,以 # 开头,不以分号 ; 结尾。

1.1 #include 预处理指令

  • 作用:将一个头文件的内容包含到当前文件中。
  • 两种形式
    1. #include <>
      • 系统直接按系统指定的目录检索头文件。
      • 通常用于包含标准库头文件,如 #include <stdio.h>
    2. #include ""
      • 首先以当前文件所在目录作为起点检索头文件,如果找不到,再按系统指定的目录检索。
      • 通常用于包含用户自定义的头文件,如 #include "myheader.h"

2. 注释

注释是程序中用于解释代码的文字,不会被编译器执行,但对程序员理解代码非常重要。

2.1 注释的分类

  1. 单行注释
    • 语法:// 被注释内容
    • 使用范围:可以在任何地方使用,如函数外面、里面,或每一条语句后面。
    • 作用范围:从 // 到这一行末尾。
    • 示例:
      c
      // 这是一个单行注释
      int age = 25; // 定义一个变量表示年龄
  2. 多行注释
    • 语法:/* 被注释内容 */
    • 使用范围:可以在任何地方使用。
    • 作用范围:从 /* 到最近的 */
    • 示例:
      c
      /* 这是一个多行注释
         可以跨越多行 */

2.2 注释的注意点

  • 单行注释
    • 可以嵌套单行注释和多行注释。
    • 示例:
      c
      // 单行注释 // 嵌套单行注释
      // 单行注释 /* 嵌套多行注释 */
  • 多行注释
    • 可以嵌套单行注释,但不能嵌套多行注释。
    • 示例:
      c
      /* 多行注释
         // 嵌套单行注释
         不能嵌套多行注释 */

2.3 使用注释的好处

  • 提高代码可读性
    • 注释可以帮助其他程序员或未来的自己快速理解代码的意图。
  • 整理实现思路
    • 在编写代码之前,先写注释可以帮助程序员理清思路。
  • 方便调试和维护
    • 注释可以记录代码的修改历史或特殊处理的原因。

3. 代码规范

良好的代码规范可以提高代码的可读性和可维护性。

3.1 示例

c
// 作者:贾修
// 描述:这段代码的作用

/*
哈哈哈
     /*嘻嘻嘻*/  // 错误:多行注释不能嵌套多行注释
 呵呵呵 
*/

3.2 代码规范要点

  1. 一行里最多包含一条语句
    • 示例:
      c
      int a = 10; // 正确
      int b = 20; int c = 30; // 不推荐
  2. 同级别的语句应该上下对齐
    • 示例:
      c
      if (a > b) {
          printf("a is greater than b\n");
      } else {
          printf("b is greater than a\n");
      }
  3. 在合适的时候使用空格和空行
    • 示例:
      c
      int sum = a + b; // 运算符前后加空格
      printf("%d\n", sum); // 逗号后加空格

4. 数据

在C语言中,数据是程序操作的基础,包括常量和变量。

4.1 常量

常量是程序运行过程中值不能被改变的量。

4.1.1 关键字
  • C语言中预先保留了32个关键字,如 intfloatreturn 等。
  • 特点:
    • 所有关键字都是由小写字母构成的。
    • 在开发工具中会显示特殊颜色。
4.1.2 字符常量
  • 用单引号 '' 括起来,如 'A''1'
  • 特殊情况:转义字符,如 '\n'(换行符)、'\0'(空字符)。
4.1.3 字符串常量
  • 用双引号 "" 括起来,如 "Hello""123"

4.2 变量

变量是程序运行过程中值可以被改变的量。

4.2.1 变量的定义
  • 标识符
    • 用于标识变量、函数等的名称。
    • 命名规则:
      1. 不能是关键字。
      2. 只能由字母、数字、下划线组成。
      3. 第一个字符必须为字母或下划线。
      4. 区分大小写,如 Funfun 不同。
    • 命名规范:
      • 望文生义:如 name 表示名字,age 表示年龄。
      • 驼峰命名:如 lastChangeTimeoldName
4.2.2 变量的作用
  • 存储程序中需要变化的数据,如年龄、计数器等。

总结

  • 预处理指令:如 #include 用于包含头文件。
  • 注释:单行注释 // 和多行注释 /* */,用于解释代码。
  • 代码规范:提高代码的可读性和可维护性。
  • 常量与变量:常量是固定值,变量是可变化的值,标识符的命名需遵循规则和规范。

知识如风,常伴吾身