vs 也就是 Visual Studio 创建 C 语言文件,核心是先安装 C 相关的 C++ 桌面开发工作负载,新建空项目之后,在源文件目录添加后缀为 c 的源文件,编写代码之后调用编译器完成编译运行,很多新手容易直接新建 cpp 文件,这样会默认按照 C++ 语法编译,和纯 C 代码存在语法兼容差异,想要标准 C 语言开发,一定要手动把文件后缀改成.c。之所以 vs 原生没有单独 C 语言项目模板,是因为 Visual Studio 底层是通过 MSVC 编译器支持 C 语言,它集成在 C++ 开发组件里面,所以必须勾选使用 C++ 的桌面开发这个工作负载,如果安装的时候没有勾选这个组件,新建项目就找不到对应的编译环境,创建完 c 文件也无法编译运行。操作的时候,第一步打开 vs 安装器确认组件安装,第二步新建空项目,第三步在解决方案资源管理器右键源文件添加新建项,第四步修改文件名称后缀为.c,第五步写入 C 代码,第六步设置启动项编译运行,遇到报错就检查编译器组件和文件后缀是否正确。
前期准备
| 项目 | 说明 |
|---|---|
| 软件 | Visual Studio 社区版专业版企业版均可 |
| 必备组件 | 使用 C++ 的桌面开发 |
| 编译器 | MSVC cl 编译器 |
| 文件后缀 | 源文件使用.c,头文件使用.h |
详细操作步骤
第一步 确认安装 C 开发组件
打开 Visual Studio Installer,点击修改,在工作负载标签页,勾选使用 C++ 的桌面开发,右侧组件默认包含 MSVC 编译器和 Windows SDK,点击右下角修改等待下载安装完成,如果已经安装可以跳过这一步。
第二步 新建空项目
启动 Visual Studio,选择创建新项目,搜索空项目,选中空项目模板,下一步填写项目名称,选择保存路径,取消勾选将解决方案放在同一目录,点击创建,这样就得到一个空白项目,不要选择控制台应用,控制台应用默认生成 cpp 文件。
第三步 创建 c 语言源文件
在右侧解决方案资源管理器,找到源文件文件夹,右键源文件,选择添加,点击新建项,选择 C++ 文件,在名称输入框,把文件名修改成 main.c,注意后缀必须是.c,不要保留.cpp,点击添加,这样就成功创建 C 语言源文件。
第四步 编写 C 代码
打开 main.c,写入标准 C 代码,比如包含 stdio.h 头文件,编写 main 函数,输入 printf 输出语句,写完保存文件。
第五步 编译运行
点击顶部菜单栏本地 Windows 调试器,或者按 F5 启动调试,vs 会调用 MSVC 编译器编译 main.c,编译成功之后弹出控制台窗口运行程序,如果只需要编译不调试,可以选择生成解决方案。
进阶要点
头文件创建,右键头文件文件夹,新建项命名为 xxx.h,用来存放函数声明宏定义,和.c 源文件搭配使用,适合多文件 C 项目开发。
多文件项目,项目里面可以添加多个.c 文件,但是只能有一个 main 函数,多个 main 函数会报重复定义错误。
标准 C 版本设置,右键项目属性,在 C C++ 语言里面,可以调整 C 语言标准,比如 C11 C17,满足不同标准代码编译需求。
常见误区,新建之后文件还是.cpp,虽然大部分 C 代码可以兼容,但是部分 C 特有语法会报错,想要纯 C 编译,后缀一定要改成.c。
常见报错排查
找不到 cl 编译器,就是没有安装使用 C++ 的桌面开发组件,重新打开安装器补齐组件。
提示无法找到 main 函数,检查.c 文件里面是否正确书写 main 入口函数。
重复定义 main,项目里面存在多个带 main 函数的.c 文件,只保留一个入口文件。
【常见问题】
问题 1 vs 创建 c 语言文件为什么默认是 cpp
回答 1 vs 默认模板是 C++ 文件,vs 创建 c 语言文件的时候,需要手动把文件名后缀修改成.c,这样 vs 才会按照 C 语言规则编译该文件。
问题 2 vs 没有 C 语言项目模板怎么办
回答 2 vs 本身没有独立 C 语言项目模板,vs 创建 c 语言文件是基于空项目加 C++ 桌面开发组件实现,只要安装使用 C++ 的桌面开发,就可以正常创建 c 语言文件。
问题 3 vs 创建 c 语言文件之后按 F5 报错怎么处理
回答 3 vs 创建 c 语言文件之后 F5 报错,优先检查是否安装 MSVC 组件,确认文件后缀是.c,并且代码里面存在 main 函数,解决 vs 创建 c 语言文件编译报错问题。
问题 4 vs 创建 c 语言文件可以添加.h 头文件吗
回答 4 vs 创建 c 语言文件之后,支持在项目头文件目录新建.h 头文件,vs 创建 c 语言文件搭配头文件,可以开发多文件结构的 C 语言工程。
【免责申明】
本文 vs 创建 c 语言文件教程基于 Visual Studio MSVC 环境,不同版本 vs 界面菜单存在细微差异,部分老旧版本操作略有不同,详细配置以对应版本官方文档为准。


