當前位置:首頁 » 電腦資訊 » c程序編碼為什麼要建立源文件

c程序編碼為什麼要建立源文件

發布時間: 2023-05-24 07:24:21

❶ c語言中的源文件是什麼意思

其實就是保存你所寫的敬畢語句的地方,你寫完語句後需要用一弊核個軟體來打開它,運行它.而這個軟體所能識別的文件,就稱為該軟體的源文件.
如C語言常用的運行軟體"Turbo
C",能識別的文件是以".c"為亮卜芹後綴名的文件,所以你在寫完C語句後保存的時候,就要保存成***.c
(文件名+點C),以便Turbo
C能順利的打開.

❷ C++中為什麼要頭文件和源文件分開寫呢

一般都是代表一個基本功能的源文件引用相應的頭文件。 一個 相關功能的模塊可能有若干對源文件和頭文件組成。這是基於組件編程的核心。 在我看來,他的好處是巨大的,是java不可比擬的,也是不可復制的: c語言中頭文件中一般定義了函數的聲明、結構體的定義、宏定義。(常量和全局變數最好放到源文件中) 1) 從業務擴展性上看:頭文件中放函數的聲明,函數由源文件實現,這就是將面向介面編程:介面和實現分開,這在面對業務變更頻繁的需求中技術實現的好處是顯而易見的--只要定義出良好地、擴展性高的介面,實現是可以很方便的更換。 2) 從程序架構上看:代碼在在大型程序中 需要分成不同的模塊,單一模塊中又可能分為不同的業務功能單元,他們間有很多相互的調用。 頭文件中的方法聲明、結構體定義、宏就都可以充當這部分的模塊與模塊間、業務功能單位間的介面調用。模塊與模塊間,功能單元與功能單元間都是面向介面的調用,耦合性低,這正是基於組件編程的核心思想。 3) 從某些技術角度實現上看:頭文件可通過宏定義來保證類定義、結構體定義、宏定義的唯一性。確實很方便,不容易出錯。 在用makefile編譯程序時,各個功能單元單獨編譯,構成中間文件.最終這些中間文件鏈接成可執行程序,在這些中間文件中重復引用同一頭文件是不可避免的。但如果頭文件有保護性編程就可以很容易保證類、結構體、宏定義的唯一性 ----最終鏈接成可執行程序時,可執行程序中代碼區中只會有唯一的類、結構體、宏的定義,其他都因為不滿足唯一性保護失效。這樣的實現是不是很『優雅』:)))? 我不知道你是否是這樣認為,至於我,我是這樣認為,haha~

❸ c語言編程為什麼要多文件呢

源代碼確實是多文件的。不過編譯好的目標代碼在運行期調入內存後就無所謂文件的概念了,然而不同代碼段之間的界限仍然存在。
模塊化主要有以下幾個優點:
1.便於復用代碼。通用性強的重復的功能只要寫一遍就可以了,下次要用在其它程序上時只要更改很小的部分或者可以不用更改。
2.便於多人協作。在設計軟體之初就可以很清楚地分配各個開發部門的任務。模塊的編寫者本身只要關注他所寫的東西,清楚這一部分的功能,留出介面就可以了。另外,對於整個工程的負責人而言,這樣會方便瀏覽全局的工作進度,統籌人員安排。
3.便於修改和維護。如果能確定只是某個模塊有問題,在模塊內解決即可,不需要牽一發而動全身。要升級某一部分的功能,可以只針對具體的模塊重新開發,節約成本。
其實不只是C語言,許多其它語言也經常使用這種方法。開發大型軟體時這種方法非常有效(否則不明顯,或者反而有副作用)。對於軟體設計來說這不僅僅是一種風格,而是一種方法學了。
聲明include包含的函數是聲明外部函數,只是extern關鍵字可以省略。
聲明後直接調用就可以了。
----
[原創回答團]

❹ C語言代碼的頭文件與源文件有什麼區別

  1. 頭文件和源文件在本質上沒有任何區別。 只不過一般:後綴為 .h 的文件是頭文件,內含函數聲明、宏定義、結構體定義等內容。後綴為 .c 的文件是源文件,內含函數實現,變數定義等內容。而且是什麼後綴也沒有關系歲稿,只不過編譯器會默認對某些後綴的文件採取某些動作。這樣分開寫成兩個文件是一個良好的編程風格。

  2. 簡單的說其實要理解C文件與頭文件(即.h)有什麼不同之處,首先需要弄明白編譯器的工作過程,一般說來編譯器會做以下幾個過程:

①預處理階段

②詞法與語法分析階段

③ 編譯階段,首先編譯成純匯編語句,再將之匯編成跟CPU相關的二進制碼,生成各 個目標文件 (.obj文件)

④連接階段,將各個目標文件中的各段代碼進行絕對地址定位,生成跟特定平台相關 的可執行文件,當然,最桐謹後還可以用obj生成純二進制碼,也就是去掉了文件格 式信 息。(生成.exe文件)

3.比方說 在aaa.h里定義了一個函數的聲明,然後在aaa.h的同一個目錄下建立aaa.c , aaa.c里定義了這個函數的實現,然後是在main函數所在.c文件里#include這個aaa.h 然後我就可以使用這個函數了。 main在運行時就會找到這個定義了這個函數的aaa.c文件。這是因為:main函數為標准C/C++的程序入口,編譯器會先找到該函數所在的文件。假定編譯程序編譯myproj.c(其中含main())時,發現它include了mylib.h(其中聲明了函數void test()),那麼此時編譯器將按照事先設定的路徑(Include路徑列表及代碼文件所在的路徑)查找與之同名的實現文件(擴展名為.cpp或.c,此例中為mylib.c),如果找到該文件,並在其中找到該函數(此例中為void test())的實現代碼,則繼續編譯;如果在指定目錄找不到實現文件,或者在該文件及後續的各include文件中未找到實現代碼,則返回一個編譯錯誤.其實include的過程完全可以「看成」是一個乎輪孝文件拼接的過程,將聲明和實現分別寫在頭文件及C文件中,或者將二者同時寫在頭文件中,理論上沒有本質的區別。以上是所謂動態方式。對於靜態方式,基本所有的C/C++編譯器都支持一種鏈接方式被稱為Static Link,即所謂靜態鏈接。在這種方式下,我們所要做的,就是寫出包含函數,類等等聲明的頭文件(a.h,b.h,...),以及他們對應的實現文件(a.cpp,b.cpp,...),編譯程序會將其編譯為靜態的庫文件(a.lib,b.lib,...)。在隨後的代碼重用過程中,我們只需要提供相應的頭文件(.h)和相應的庫文件(.lib),就可以使用過去的代碼了。相對動態方式而言,靜態方式的好處是實現代碼的隱蔽性,即C++中提倡的「介面對外,實現代碼不可見」。有利於庫文件的轉發.

❺ C語言中頭文件和源文件的關系

1、cpp文件和.h文件有各自的分工,一般來說,h文件中是類的定義和類成員函數的聲明,以及全局變數定義等;cpp文件是對應h文件中成員函數的代碼實現。一般cpp文件代碼較多。
這樣做的好處:h文件只聲明類成員函數,簡單易懂,當其他段蠢文件要調用該類的介面時,只需包含該h文件,並在編譯時將該h文握飢陪件和同名cpp文件編譯出的庫文件一起連接即可。(如在lz寫的main文件中只需 #include "Alarm.h")

2、 一般我們在編譯的時候只編譯cpp文肢滲件,將該cpp包含的h文件設為依賴。從而將這些cpp文件和h文件聯系起來

❻ 源文件是什麼意思

源文件一般指用匯編語言或高級語言寫出來的代碼保存為文件後的結果。源文件是相對目標文件和可執行文件而言的。源茄陪文件就是用匯編語言或高級語言寫出來的代碼保存為文件後的結果。

現行源文件是指處理機正在運行進程或作業的源文件。由於程序纖告運行具有局部性,現行源文件只有一部分調入內存,當內存缺失有關指令和數據,處理機再從外存調入有關的源文件。

文件類型(毀納明或文件格式)是指電腦為了存儲信息而使用的對信息的特殊編碼方式,是用於識別內部儲存的資料。比如有的儲存圖片,有的儲存程序,有的儲存文字信息。

簡介

在文件系統中,為了便於管理和控制文件而將文件分成若干種類型。由於不同系統對文件的管理方式不同,因而它們對文件的分類方法也有很大差異。為了方便系統和用戶了解文件的類型,在許多操作系統中都把文件類型作為擴展名而綴在文件名的後面,在文件名和擴展名之間用「.」號隔開。

從字面意義上來講,源文件是指一個文件,指源代碼的集合。源代碼則是一組具有特定意義的可以實現特定功能的字元(程序開發代碼)。

❼ C語言的開始:源文件,頭文件

任何C程序最終都是要寫在文件上面,通常分兩種,源文件和頭文件,不是每個程序都有頭文件,比如一些簡單小程序就沒有。

源文件根據慣例,通常擴展名為.C,但是能否用其他擴展名嗎?查了一些資料,得到的答案是:盡管標准並沒有制定文件的取名規則,但大胡虛多數環境散派都存在你必須遵守的文件名命令約定。

頭文件根據慣例,通常擴展名為.h。通常是一個源文件對應一個的頭文件,並且兩個文件名相同,只是擴展名不同。我一直有個疑惑,就是可以讓源文件和頭文件兩個文件名不同嗎?經過親自折騰一下,確是可以的。經過細想,原因如下:頭文件只是用於共享宏、變數、函數等的。而且#include的語義是把對應的文件包含進來,至於包含的文件是什麼名字並不重要,要不要和源文件名相同也不重要,如果非要一樣,反而限制了#include的能力。另外C99標准中有這樣關#include有這樣一句話:A #include directive shall identify a header or source file that can be processed by the implementation.也就是說指要編譯器支持的文件,#include指令應該都可以包含。一般編譯器的功能都挺強大,足夠滿足我們需求,至於遇到特殊情況的大佬,大佬也會自行解決。

聊到頭文件 那就有必要對#include指令進行說沖做賀明:

#include指令常用格式如下:

#include , #include "fileName" #include token(這里token一般指宏的名字)

如果在源文件#include包含有一個static變數或函數的定義的頭文件,那麼這個源文件也可以訪問這個static變數或函數。原因就是這個源文件把對應的文件包含進來,那這些static變數或函數就相當於在這個源文件中定義,當然源文件就可以訪問了。

❽ C語言中,源程序與源文件有什麼區別麻煩詳細點

通常我們在做練習的時候編的程序是將定義的數據結構、函數和宏,都放在了一個.c文件中了。
但是,在做大的項目的時候,往往是由多人完成,有些通用的東西可能多個人都要用到。這樣就將數據結構的定義、函數的定義宏的定義甚至包含的頭文件都放於某個.h文件裡面,把相關功能的代碼放在同一個.c文件裡面。最後,多個.c文件可以編譯成多個.o目標文件,多個.o文件可以連接一個大的工程文件。
以上的.c文件就是源程序文件。知賀
可能沒有講得怎麼清楚…但是,初學編程的人可以先養成良好的習慣將數據結構的定義,函數的定義宏的定義放在頭文件.h里,其羨虧他代碼寫在.c文件里兄猛神,在.c文件中包含這個頭文件。

❾ C語言中為什麼要頭文件和源文件分開寫

首先當編寫單個文件時我們都念咐沒是只有一個.c文件,但是真正做工程的時候,會寫很多的模塊,我們都知道寫程序要高內聚、低耦合,這樣做可簡局以優化代碼,方便後期維護,你說仔納的頭文件和源文件就是這樣的,源文件是實現某些功能,而都文件是定義一些通用的數據結構,還有就是源文件里的函數會被其他文件調用,這就要在都文件里聲明,你會看到extern function()這樣的聲明,就是為外部提供調用的,這就是問什麼要頭文件和源文件分開寫的原因。
望採納!

熱點內容
為什麼office一直正在處理文件 發布:2025-02-08 05:15:33 瀏覽:203
為什麼電腦一段時間就自己更新 發布:2025-02-08 05:15:29 瀏覽:439
這段時間為什麼總是雷雨 發布:2025-02-08 05:07:14 瀏覽:984
大晚上流鼻血是因為什麼 發布:2025-02-08 05:07:13 瀏覽:19
網上的手機為什麼價錢不一樣 發布:2025-02-08 04:50:19 瀏覽:518
吃熱乎的東西為什麼會淌鼻涕 發布:2025-02-08 04:48:01 瀏覽:725
踢球為什麼找不到眼球 發布:2025-02-08 04:42:53 瀏覽:872
女生水多是為什麼 發布:2025-02-08 04:42:53 瀏覽:349
為什麼男生縮小腹會痛 發布:2025-02-08 04:24:49 瀏覽:904
油餅為什麼發的不好 發布:2025-02-08 04:20:54 瀏覽:234