一个很奇怪的头文件问题,在更新之后为什么原来的stdafx.h没了变成了pch.h感觉怪怪的

w_1005ei 2018-09-22 12:01:15
#include "pch.h"//这个头文件以前就没见过
#include "stdafx.h"//这一行是我自己写的 提示文件打不开 去掉后程序可以运行
#include <iostream>
...全文
3431 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
幻夢之葉 2019-02-16
  • 打赏
  • 举报
回复
VS建立某些类型工程生成stdafx.h这个头文件,是把这个头文件作为预编译头文件进行处理的
pch.h看名称一般也是作为预编译头文件的,pch为previous compiled header的缩写

VS中,“工程配置”——“C/C++”——“预编译头”内可以设置和查看预编译头的信息

预编译这个功能主要是优化了编译速度,把一些极少改动的编译单元文件(如标准库(STL),第三方库(源码),自有的稳定库(源码),工程其他模块但不大可能频繁变动的(源码))
把以上的有需要的include的头文件集中放置在预编译头文件中,选择“重新生成”在所有导入的代码没有变动的情况下不需要重新编译这一部分代码。

预编译对于大型项目来说是特别有必要的

PS:以上均为自身理解,如有说法错误敬请指正。
  • 打赏
  • 举报
回复
stdafx.h这个文件名作为预编译头文件,已经太多年了。这是带有显著早期Microsoft味道的命名。AFX是从MFC早期开始就有的东西,可以度娘一下:AFX

变成pch.h就对了,明明白白就是预编译。微软很多产品命名都比较直白,比如早期的浏览器 Internet Explorer,比其他的firefox之类的直白多了。计算器就叫calc,画图是 mspaint。
郑昊 2019-02-15
  • 打赏
  • 举报
回复
这个是最近更新之后的(加强版)stdafx.h。与原来的stdafx.h用法一样。而且更加稳定了。里面将程序所有稳定的不会经常修改的头文件放进去就OK了。
zy010101 2018-09-22
  • 打赏
  • 举报
回复
这个新版本VS自动添加的。你建立工程的时候可以选择空项目。就什么都没有了。
设备树(device tree)机制是Linux内核从linux-3.x版本开始引进的一种机制,目的是解决内核源码的arch/arm目录下代码混乱的问题:随着ARM生态的快速发展,在内核源码的arch/arm目录下,存放着几十种arm芯片和几百个开发板相关的源文件,很多开发板和处理器的中断、寄存器等相关硬件资源都在这个目录下以.c或.h的文件格式定义。而对于内核来说,与这些硬件耦合,会导致内核代码混乱不堪,每个开发板上运行的内核镜像都必须单独编译配置,无法通用。什么时候Linux内核能像Windows镜像那样,无论你的电脑什么配置,一个Windows安装包,都可以直接下载安装运行呢?设备树机制,实现了Linux内核和硬件平台的解耦:每个硬件平台的硬件资源使用一个设备树文件(xxx.dts)来描述,而不是在arch/arm下以.c 或 .h 文件来定义。Linux内核是一个通用的内核,在启动过程中,在通过解析设备树中的硬件资源来初始化某个具体的平台。 引入设备树后,很多和内核驱动开发的工作也发生了变化:以往驱动工程师关注的头文件宏定义、寄存器定义,现在这些基本上不用关注,关注的重点则转向了如何根据硬件平台去配置和修改设备树文件。很多驱动的编程接口也发生了变化,开始慢慢使用device tree提供的编程接口去开发驱动。本期课程主要面向嵌入式开发人员,分享Linux下驱动开发所需要的设备树知识和必备技能

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧