第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

VisualStudio中使用的“stdafx.h”是什么?

VisualStudio中使用的“stdafx.h”是什么?

VisualStudio中使用的“stdafx.h”是什么?名為stdafx.h在VisualStudio 2010中啟動項目時自動生成。我需要一個跨平臺的C+庫,所以我不能/不能使用這個頭文件。是什么stdafx.h用來?我可以刪除這個頭文件嗎?
查看完整描述

3 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊

所有C+編譯器都有一個嚴(yán)重的性能問題需要處理。編譯C+代碼是一個漫長而緩慢的過程。

編譯C+文件頂部包含的標(biāo)題是非常漫長而緩慢的過程。編譯構(gòu)成WindowsAPI和其他大型API庫一部分的大型頭結(jié)構(gòu)是非常非常漫長而緩慢的過程。每一個CPP源文件都要重復(fù)一遍,一遍又一遍,這是一個喪鐘。

這并不是Windows獨有的問題,而是所有必須針對Windows這樣的大型API進(jìn)行編譯的編譯器所面臨的老問題。

microsoft編譯器可以通過一個名為預(yù)編譯頭..訣竅是相當(dāng)巧妙的:雖然每個CPP文件都有可能并且合法地賦予每個CPP文件頂部包含的頭文件鏈不同的含義(比如在包含之前定義不同的宏,或者按不同的順序包含頭),但情況通常并非如此。大多數(shù)情況下,我們有幾十個或數(shù)百個包含的文件,但它們都是為了對您的應(yīng)用程序中正在編譯的所有CPP文件具有相同的含義。

如果編譯器不必每次都開始編譯每個CPP文件,再加上它的幾十個包含的內(nèi)容,那么編譯器就可以節(jié)省大量的時間。

技巧包括指定一個特殊的頭文件作為所有編譯鏈的起點,所謂的“預(yù)編譯頭”文件,通常是一個名為stdafx.h只是出于歷史原因。

只需按照適當(dāng)?shù)捻樞蛟趕tdafx.h文件中列出API的所有大型頭,然后用#include "stdafx.h",在任何有意義的內(nèi)容之前(之前只允許評論)。

在這種情況下,而不是開始從頭開始,編譯器將從已保存的編譯結(jié)果開始編譯stdafx.h.

我不相信這個技巧是微軟編譯器獨有的,我也不認(rèn)為它是一個原創(chuàng)的開發(fā)。

對于Microsoft編譯器,控制預(yù)編譯頭使用的設(shè)置由編譯器的命令行參數(shù)控制:/Yu "stdafx.h"..正如您可以想象的,使用stdafx.h文件名只是一種約定;如果您愿意,可以更改名稱。

在VisualStudio 2010中,通過右鍵單擊CPP項目,選擇“Properties”并導(dǎo)航到“Configuration Properties\C/C+\預(yù)編譯頭”,從GUI控制此設(shè)置。對于其他版本的VisualStudio,GUI中的位置將有所不同。

請注意,如果禁用預(yù)編譯的標(biāo)頭(或者通過不支持它們的工具運行項目),這不會使程序成為非法;這意味著您的工具每次都會從頭開始編譯所有內(nèi)容。

如果您正在創(chuàng)建一個沒有Windows依賴項的庫,您可以很容易地從stdafx.h文件中注釋掉或刪除#include。沒有必要刪除文件本身,但顯然您也可以這樣做,通過禁用上面的預(yù)編譯頭設(shè)置。


查看完整回答
反對 回復(fù) 2019-07-01
  • 3 回答
  • 0 關(guān)注
  • 1378 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號