空项目更适合初学者练手,因其无预编译头、无SDL检查、无Unicode强制设置,可手动编写最简main()并完全掌控编译流程;需手动配置字符集为“未设置”、符合模式为“否”、子系统为“控制台”。

直接用“空项目”模板,别选控制台应用——它会自动塞一堆你暂时用不着的预编译头、SDL检查、Unicode设置,反而干扰初学理解。
为什么空项目比控制台应用更适合练手
控制台应用模板默认启用 /Zi(调试信息)、/GS(缓冲区安全检查)、/RTC1(运行时错误检查),还会强制包含 stdafx.h 或 pch.h。这些对写 hello world 或练习指针、类、STL 完全是噪音。
- 空项目只生成一个干净的
.vcxproj,没有预编译头、没有额外宏定义、没有 Windows SDK 特定入口函数 - 你可以自己写最简
main(),比如int main() { return 0; },完全掌控编译流程 - 避免被
_tmain、_UNICODE、WIN32_LEAN_AND_MEAN等概念提前劝退
创建后必须改的三项关键配置
空项目默认是 x86 + Debug 模式,但新手常卡在中文输出乱码、std::cout 不刷新、或链接失败上。进 项目属性 → 配置属性 改这三项:
-
字符集→ 改为「未设置」(不是「使用 Unicode 字符集」):避免std::wcout和宽字符陷阱 -
C/C++ → 语言 → 符合模式→ 设为「否」(/permissive-关闭):否则 C++17 的if constexpr或结构化绑定可能报错 -
链接器 → 系统 → 子系统→ 改为「控制台(/SUBSYSTEM:CONSOLE)」:否则窗口一闪就关,看不到输出
添加练习文件时别漏掉这个操作
右键项目 →「添加 → 新建项」加 .cpp 后,VS 默认不会把它加入编译——它只是“存在”,但没被 cl.exe 看到。
组合式C++代码评审方案,融合静态分析、AI推理、多轮迭代评审和C++专项检查,适用于PR审查、增量代码审查、全项目评审和代码质量评分,触发词包括review cpp、cpp代码评审、C++review、代码审查。
立即学习“C++免费学习笔记(深入)”;
- 必须右键该
.cpp文件 →「属性」→「常规 → 项类型」确认是「C/C++ 编译器」 - 如果误设成「无」或「自定义生成工具」,点击「本地 Windows 调试器」会提示
LNK1104: 无法打开文件 'xxx.obj' - 更隐蔽的问题:文件名含中文或空格(如
指针练习.cpp),会导致编译器路径解析失败,建议全用英文下划线命名
调试前先关掉两个默认开关
新手常遇到「按 F5 没反应」「断点灰掉」「程序直接退出」,大概率是这两个选项在作怪:
-
项目属性 → 配置属性 → 常规 → 预编译头→ 必须是「不使用预编译头」(哪怕你什么都没动过,空项目有时也会继承全局设置) -
项目属性 → 配置属性 → C/C++ → 预处理器 → 预处理器定义→ 清空所有内容,尤其删掉_DEBUG和CONSOLE这类宏,它们会干扰assert行为和std::cin输入逻辑
真正容易被忽略的是:每次切换「Debug/Release」或「x86/x64」配置,都得重新检查这几项——它们不跨配置继承,一不留神就回到坑里。

















