1樓:何處淬吳鉤
第乙個問題。
請問,我是不是該這樣做:
在中#include
在中同樣#include (好像是必需的,請詳細解釋)
這是必需的。因為編譯器只是把包含檔案的**複製過來,既然你二個檔案中都用到標頭檔案的內容,那當然要包含標頭檔案,否則就會出錯。
我的觀點,如果這兩步都是必需的 那麼當有很多個比如10個。c程式耐州每個裡頭都要#include 那麼檔案是不是會特別大,當有100個。c程式都要包含一下的話,那麼不是非常重複麼?
那當然是會重複的。不過這個對程式的執行效率沒任何影響,只是在編譯過程中對檔案的分析時間會稍長些,這也是沒昌拿蔽有辦法的事,全看**編寫者如何組織結構了。
第二個問題:
會的。解決的方法就是在可能被多次包含的標頭檔案中開頭加上#pragma once,那樣就可以保證此標頭檔案**只被執行一次,而不會造成標頭檔案中函式多次重複定義至於引起這種情況的情況。當然你也可以自己用#ifdef等預編譯處理來解決。
敏模你問的問題不就是這種情況麼?和中都包含標頭檔案。
第三個問題:
當我在中這樣。
#define unchar unsigned char
那麼當我在中還需要重新建立替換巨集unchar嗎 可以不在建立而直接使用嗎?
答案是需重新建立,不能直接使用。但你可以把一些在多個檔案中使用的巨集、全域性變數等統一定義到乙個標頭檔案中,那這樣就可以避免多次定義了。
2樓:匿名使用者
一般會在多次被引用的公共標頭檔案中定義。
#pragma once 告訴編譯器只編譯一次(vc環境中)..一些宣告語句。
或者。#ifndef _ 如果沒有編譯過。
#define _ 那麼標記為編譯過。
。內容,一些申明語句。
#endif 結束#ifndef,如果已經編譯過就跳過之間的部分,不編譯。
所以就避悶橡瞎如寬免重複編譯的問題,檔案不會變大。
可以把公共的巨集定螞空義放乙個標頭檔案裡。
c語言多檔案程式設計
3樓:苗慧麗北羅
001最少要num[4]來存。除了001三個字元,還有乙個\0字元。所以第一次出錯。
只要改成num[4]就可以了,你改成num[10]就更可以了。c語言字串是以\0結束的。
4樓:
多個。c檔案使你的程式具有更好的閱讀性,而且乙個。c對應自己的乙個在自己檔案的作用域,用extern可以將全域性變數宣告拓展出去,你在乙個。
c檔案裡面宣告的變數無論是不是全域性還是constant、static、區域性,都只在自己的檔案的作用域裡面,用extern可以宣告到其他的。c裡面。編譯的時候是按照先分開編譯乙個乙個。
c檔案生成對應的乙個個obj中間檔案,然後再根據包含的標頭檔案進行連線。
c語言、c++:關於多檔案程式設計
5樓:匿名使用者
你如果是用編譯器自動生成的檔案,編譯器自動加到專案裡,自己寫的,你要手動在專案中新增檔案,編譯器才會檢索,編譯器只檢索屬於專案的檔案。
1,.c或者。cpp不需要包含,如果你是用vs系列,.h和。cpp是一對的,你包含了就是能使用的資源、你自己想包含的話那也無所謂,一般是編譯器做的。
2 .h可以新增實現,一切都可以新增。但是為了**的隱藏和符合程式設計的機制,一般都放到對應的。cpp。簡短的函式可以直接放在。h,你自己找起來也方便。
3.包含了。h就能直接使用對應的。
c。專案中這種事情一般讓編譯器去實現。其實編譯的時候,編譯器會自動檢索所有檔案,只要你有宣告,實現不管你寫在哪,編譯器都會找到的,寫在對應的。
h和。cpp是為了方便和規範的需要。
如何編譯一個檔案,怎麼編譯多個c語言檔案
嗯,儲存的是機器碼,而記事本翻譯的是ascii碼,所以是亂碼。你試試用winhex或hxd,開啟後都是0和1。這才是機器碼,這不是檔案保護。當然了,在程式設計的時候,他們還是我們認識的類似英語的 語言 經過軟體編譯,才成了0和 asp?ext 副檔名,可以查詢他的生成或開啟軟體。程式設計序的一般過程...
c語言中的標頭檔案,c語言中,標頭檔案是什麼意思?有什麼用?
c語言中的標頭檔案 include。標頭檔案的作用 1.標頭檔案可以定義所用的函式列表,方便查閱你可以呼叫的函式。2.標頭檔案可以定義很多巨集定義,就是一些全域性靜態變數的定義,在這樣的情況下,只要修改標頭檔案的內容,程式就可以做相應的修改,不用親自跑到繁瑣的 內去搜尋。3.標頭檔案只是宣告,不佔記...
c語言中的標頭檔案大全及其作用,在C語言中,標頭檔案的作用是什麼?
在安裝c語言程式的資料夾d vc98 include裡面全部都是標頭檔案,下面是一部分 include 設定插入點 include 字元處理 include 定義錯誤碼 include 浮點數處理 include 檔案輸入 輸出 include 引數化輸入 輸出 include 資料流輸入 輸出 i...