預編譯標頭
『壹』 預編譯頭文件來自編譯器的早期版本,或者預編譯頭為 C++ 而在 C 中使用它(或相反) 怎麼調試
你是在vs中使用c文件。首先要調用c函數的地方,加上extern "c"{ #include "xx.h"},把c所用的頭文件放這裡面;
然後在vs工程裡面設置不使用預編譯頭
project->configuration property->c/c++->precompiled headers->選not using precompiled heads
『貳』 預編譯頭文件來自編譯器的早期版本,或者預編譯頭為 C++ 而在 C 中使用它(或相反)
C++使用中基本上c裡面的頭文件都可以兼容,但反過來則不行。如果是說這個C++的頭文件你一定要使用在C中它,那就只能你自行編譯一個了。
還有你說的不是很清楚「」冒號中的句子是你想要問的問題還是你想做個MFC課程設計?你又說你用的是VS2005,加上mfc,那就只能是學VC了,基本上來說你如果只是想做一個課程設計而不是成為一個程序設計高手的話,c++和c都對你的VC課程設計影響不大。
『叄』 使用預編譯的頭文件和CMake問題,怎麼解決
應該是你的板子是用/opt/arm-2010.09.../include/bits編譯
pc機是用/usr/include/bits編譯,在arm上編譯的時候前者的頭文件內容要和後者一直
另外,沒有指定目錄的情況下cmake是不會去搜尋/opt/目錄下的文件夾,看下是哪裡寫錯了!
『肆』 無法打開預編譯頭文件
清理一下,然後rebuild。
『伍』 既然預編譯只是起一個聲明的作用,為什麼不在工程中每個c文件中包含所有的頭文件呢這樣不是很方便么
預編譯的時候會把包含的頭文件展開,即把頭文件裡面的內容展開在當前文件中,如果包含所有頭文件,第一會很占空間,因為有些頭文件裡面的變數(比如有很大的數組或者什麼的)在當前這個文件並沒有用到;其次很耗時間,因為要一個個去展開;第三,撇開時間和空間消耗不說,可能會存在不同頭文件中聲明或者定義了同名變數,這樣在編譯的時候就會報錯。但是你卻很難找到錯誤,因為頭文件裡面的東西你看不見,其次還可能引起一個重復包含的問題,比如頭文件A.h包含了B.h,你在當前.c文件中如果#include"A.h" 後又#include"B.h" 的時候就會報錯了,因為你重復包含了,當然重復包含可以通過#ifdef#endif機制解決。但是你不能保證每個頭文件中都做了這樣的操作。
『陸』 vs2013怎麼去掉預編譯頭文件stdafx.h和stdafx.cpp
看看有哪些需要的,修改、遷移到自己代碼中,然後刪除引用、刪除在項目中。。~~~~~~~~~~~~
『柒』 初學MFC,stdafx.h這個預編譯頭文件里邊一般放什麼包含文件
常用的系統頭文件 ,放在stdafx好管理..
『捌』 頭文件預編譯用什麼
#號是官方定義的,用於和其他類型區別的,不用多考慮,你就看看我給你的鏈接看看官方的說法
條件編譯符號#define ???
#if、#elif、#else 和 #endif 指令提供的條件編譯功能是通過預處理表達式和條件編譯符號來控制的。
conditional-symbol:(條件符號:)
除 true 和 false 外的任何標識符或關鍵字
條件編譯符號有兩種可能的狀態:已定義的或未定義的。在源文件詞法處理開始時,條件編譯符號除非已由外部機制(如命令行編譯器選項)顯式定義,否則是未定義的。當處理 #define 指令時,在指令中指定的條件編譯符號在那個源文件中成為已定義的。此後,該符號就一直保持已定義的狀態,直到處理一條關於同一符號的 #undef 指令,或者到達源文件的結尾。這意味著一個源文件中的 #define 和 #undef 指令對同一程序中的其他源文件沒有任何影響。
當在預處理表達式中引用時,已定義的條件編譯符號具有布爾值 true,未定義的條件編譯符號具有布爾值 false。不要求在預處理表達式中引用條件編譯符號之前顯式聲明它們。相反,未聲明的符號只是未定義的,因此具有值 false。
條件編譯符號的命名空間與 C# 程序中的所有其他命名實體截然不同。只能在 #define 和 #undef 指令以及預處理表達式中引用條件編譯符號。
1
『玖』 怎樣取消預編譯頭文件~~~~~
這里沒裝VC6``忘了那幾個名字
你去project-setting,然後在第一個(或第二個)tab頁,會看到左邊有一個樹,你選擇對應要取消預編譯頭的文件,然後在右邊,會看到一個combo box,選擇process.. header``然後會有4個單選框,你選擇第一個no...什麼的就可以了
---------------------------------------------------------------
vc++IDE--->Project--->Setting--->c/c++--->Category--->PreCompiled Headers--->Not Use Precompiled Headers