c_snake_game

第 3 课:第一个 C 程序 👶

欢迎来到 C 语言的世界!让我们写下你的第一个 C 程序。


3.1 Hello World 传统

每个程序员的第一课都是从 “Hello World” 开始的。这是一个传统,也是一个简单的测试,确保你的环境正常工作。


3.2 编写代码

打开编辑器,创建 src/main.c 文件:

# 使用你喜欢的编辑器
code src/main.c      # VSCode
# 或
vim src/main.c       # Vim
# 或
nano src/main.c      # Nano

输入以下代码:

#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}

3.3 代码逐行解释

#include <stdio.h>

预处理器指令:告诉编译器在编译前包含标准输入输出库。这个库提供了 printf 函数。

int main(void) {

主函数:这是程序的入口点。每个 C 程序都必须有一个 main 函数。

    printf("Hello, World!\n");

输出语句

    return 0;

返回语句return 0 表示程序成功结束。非零值通常表示出错。

}

结束大括号:标记函数体的结束。


3.4 编译程序

C 语言是编译型语言,需要将源代码转换为机器码才能运行。

# 编译 main.c
gcc src/main.c -o snake_game

# 运行程序
./snake_game

你应该看到输出:

Hello, World!

编译过程详解

源代码 (main.c) → 编译器 (gcc) → 可执行文件 (snake_game)
     ↓                                    ↓
  人类可读                              机器可读

gcc 常用选项

选项 说明 示例
-o 指定输出文件名 gcc main.c -o program
-Wall 显示所有警告 gcc -Wall main.c
-g 添加调试信息 gcc -g main.c
-I 指定头文件搜索路径 gcc -I./include main.c
-c 只编译不链接 gcc -c main.c

3.5 修改和实验

试试修改程序:

#include <stdio.h>

int main(void) {
    printf("🐍 Welcome to Snake Game!\n");
    printf("Let's learn C programming!\n");
    return 0;
}

重新编译并运行:

gcc src/main.c -o snake_game
./snake_game

3.6 理解错误信息

编译器会帮助你发现错误。看看这些常见错误:

错误 1:缺少分号

printf("Hello")    // ❌ 缺少分号
printf("Hello");   // ✅ 正确

错误信息

error: expected ';' after expression

错误 2:拼写错误

print("Hello");    // ❌ 应该是 printf
printf("Hello");   // ✅ 正确

错误信息

error: implicit declaration of function 'print'

错误 3:缺少头文件

// #include <stdio.h>  // ❌ 注释掉了
printf("Hello");       // ❌ 编译器不知道 printf 是什么

错误信息

warning: implicit declaration of function 'printf'

3.7 调试技巧

使用 printf 调试

#include <stdio.h>

int main(void) {
    int score = 100;
    
    printf("DEBUG: score = %d\n", score);  // 调试输出
    
    printf("Game Start!\n");
    return 0;
}

编译时添加警告

# -Wall 显示所有警告
# -Wextra 显示额外警告
gcc -Wall -Wextra src/main.c -o snake_game

3.8 小练习

练习 1:个人信息

修改程序输出你的信息:

姓名:XXX
年龄:XX
城市:XXX

练习 2:简单计算

#include <stdio.h>

int main(void) {
    int a = 10;
    int b = 20;
    
    // 输出 a + b 的结果
    printf("10 + 20 = %d\n", a + b);
    
    return 0;
}

练习 3:图案打印

🐍🐍🐍🐍🐍
🐍  蛇  🐍
🐍🐍🐍🐍🐍

✅ 本课检查清单


📝 关键概念总结

概念 说明
编译 将源代码转换为可执行文件的过程
头文件 包含函数声明,用 #include 引入
main 函数 程序的入口点
printf 标准输出函数
返回值 return 0 表示成功

下一课:数据类型与变量