头文件预编译
所謂頭文件預(yù)編譯,就是把一個(gè)工程(Project)中使用的一些MFC標(biāo)準(zhǔn)頭文件(如Windows.H、 Afxwin.H)預(yù)先編譯,以后該工程編譯時(shí),不再編譯這部分頭文件,僅僅使用預(yù)編譯的結(jié)果。這樣可以加快編譯速度,節(jié)省時(shí)間。 預(yù)編譯頭文件通過(guò)編譯stdafx.cpp生成,以工程名命名,由于預(yù)編譯的頭文件的后綴是“pch”,所以編譯結(jié)果文件是projectname.pch。 編譯器通過(guò)一個(gè)頭文件stdafx.h來(lái)使用預(yù)編譯頭文件。stdafx.h這個(gè)頭文件名是可以在project的編譯設(shè)置里指定的。編譯器認(rèn)為,所有在指令#include "stdafx.h"前的代碼都是預(yù)編譯的,它跳過(guò)#include "stdafx. h"指令,使用projectname.pch編譯這條指令之后的所有代碼。 因此,所有的CPP實(shí)現(xiàn)文件第一條語(yǔ)句都是:#include "stdafx.h"。 另外,每一個(gè)實(shí)現(xiàn)文件CPP都包含了如下語(yǔ)句: #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif 這是表示,如果生成調(diào)試版本,要指示當(dāng)前文件的名稱。__FILE__是一個(gè)宏,在編譯器編譯過(guò)程中給它賦值為當(dāng)前正在編譯的文件名稱。 VC默認(rèn)情況下使用預(yù)編譯頭(/Yu),不明白的在加入新.h文件后編譯時(shí)總出現(xiàn)fatal errorC1010: 在查找預(yù)編譯頭指令時(shí)遇到意外的文件結(jié)尾的錯(cuò)誤。解決方法是在include頭文件的地方加上#include"stdafx.h",或者打項(xiàng)目屬性,找到“C/C++”文件夾,單擊“預(yù)編譯頭”屬性頁(yè)。修改“創(chuàng)建/使用預(yù)編譯頭”屬性為“不使用預(yù)編譯頭”。
轉(zhuǎn)載于:https://www.cnblogs.com/mysunnyday/archive/2011/09/18/2180154.html
總結(jié)
- 上一篇: 眼部肌肉营养不良也被称为进行性核眼肌麻痹
- 下一篇: c语言常考