================================== C 语言简介与 VC10 开发环境搭建 ================================== C 语言概述 =========== C 语言由 Dennis Ritchie 于 1972 年在贝尔实验室开发,是当今最具影响力的编程语言之一。 它兼具高级语言的结构化特性和低级语言的内存操作能力。 核心特点 --------- - **过程式编程**:以函数为基本组织单元 - **高效性**:编译为原生机器码,性能接近汇编 - **可移植性**:ANSI C 标准确保跨平台兼容 - **底层操作**:指针直接操作内存地址 - **简洁强大**:仅 32 个关键字,语法简洁 与 VC10 的关系 -------------- VC10(Visual C++ 2010)是微软 Visual Studio 2010 中的 C/C++ 编译器套件: - 支持 C89(ANSI C)和部分 C99 标准 - 包含完整的 Windows SDK - 提供图形化 IDE(集成开发环境) - 内置调试器、性能分析工具 - MFC / ATL 库用于 Windows 桌面应用开发 .. note:: 虽然 VC10 年代较久,但它是学习 Windows 平台 C/C++ 开发的经典环境, 理解其编译器特性对维护遗留项目尤为重要。 环境搭建 ========= 安装 Visual C++ 2010 Express ---------------------------- .. code-block:: text 1. 下载 Visual C++ 2010 Express(免费版) https://visualstudio.microsoft.com/vs/older-downloads/ 2. 运行安装程序,选择 "Visual C++ 2010 Express" 3. 安装 Windows SDK 以获得完整头文件和库 4. 安装 SP1 补丁以获得更好的 C99 支持 创建第一个 C 项目 ------------------- .. code-block:: text 1. 启动 Visual C++ 2010 2. 文件 → 新建 → 项目 3. 选择 "Win32 控制台应用程序" 4. 项目名称:hello_c 5. 在 "应用程序设置" 中选择 "空项目" 6. 解决方案资源管理器中右键 "源文件" → 添加 → 新建项 7. 选择 "C++ 文件(.cpp)",文件名改为 main.c .. warning:: 即使写 C 代码,VC10 默认使用 ``.cpp`` 扩展名会触发 C++ 编译。 必须使用 ``.c`` 扩展名才会按 C 语言编译。 第一个程序 ----------- .. code-block:: c :caption: main.c #include int main(void) { printf("Hello, World!\n"); return 0; } 编译与运行: .. code-block:: text 调试 → 开始执行(不调试) (Ctrl + F5) 或 调试 → 开始调试 (F5) 项目文件结构 ============= .. code-block:: HelloC/ ├── hello_c.sln # 解决方案文件 ├── hello_c/ │ ├── hello_c.vcxproj # 项目文件 │ ├── main.c # 源文件 │ ├── stdafx.h # 预编译头(可选) │ └── stdafx.cpp # 预编译头实现 ├── Debug/ # 调试版输出 └── Release/ # 发布版输出 VC10 编译器与标准 ================== .. list-table:: :header-rows: 1 * - 标准 - VC10 支持情况 * - C89 (ANSI C) - 完整支持 * - C99 - 部分支持(``//`` 注释、混用声明等) * - C11 - 不支持(需 VS2012+) .. tip:: 在 VC10 中编译 C 代码时,建议以 C89 风格为主: - 变量声明放在代码块**开头** - 使用 ``/* */`` 注释风格(也可用 ``//``) - 注意 ``for (int i = 0;;)`` 这种写法需开启 C++ 模式 常用快捷键 =========== .. list-table:: :header-rows: 1 * - 快捷键 - 功能 * - ``Ctrl + F5`` - 编译并运行(不调试) * - ``F5`` - 开始调试 * - ``F9`` - 设置/取消断点 * - ``F10`` - 逐过程(跳过函数内部) * - ``F11`` - 逐语句(进入函数内部) * - ``Ctrl + Shift + B`` - 生成解决方案 * - ``Ctrl + K, C`` - 注释选中行 * - ``Ctrl + K, U`` - 取消注释