為什麼要把c語言放在文件中
㈠ C語言什麼時候需要用到文件操作
由於程序每一次運行都需要輸入數據,這個輸入的數據如果量很大,就非常花時間,而且一不小心,如果中間已經輸錯了一個數據,並且按了回車,那麼就不能再更改,除非中上程序運行。但這時就需要重新輸入數據。這是輸入文件的情況,另外程序的處理得到了結果都輸出在屏幕上,如果輸出輸出的數據量很大,那麼如果需要保存這個運行結果的話,就得把它抄下來,不利於運行結果的保存。所以這兩種情況下就需要從文件中讀入數據,或者把運行的結果輸出到文件。還有的情況是計算機要處理的,本身就是計算機產生的某種類型的文件,這時就必須要打開文件才能夠處理。
㈡ C語言中,為什麼要把被調用函數放在不同的文件中
這樣一個文件里的代碼不會太多,有更好的可閱讀性
並且,功能相同的函數放在一起,也更易於管理 。
㈢ 在C語言中「 文件」是用來干什麼的
文件是專門用來存放數據的,對於一個C程序,你可以從鍵盤輸入數據,可以向屏幕輸出數所。但如果,你想處理一個成績表,而成績表存在一個記事本裡面,而你又不想將數據一個一個的輸進去,這時你就可以用文件操作語句,打開存著成績表的記事本,然後將成績表中的數據用相應的語句傳給C語言中的變數,然後再進行運算處理。當然,記事本中的數據格式,要與你C語言中的操作語句相匹配。
㈣ c語言 中 為什麼不將全局變數的定義放在頭文件中
首先要說明什麼是全局變數,c語言中全局變數一般是指定義在函數體外的變數。全局變數按可訪問性可分為外部變數和內部變數。
內部變數是指使用了static關鍵字修飾的全局變數,它的可訪問范圍(作用域)被限定在本源文件所在的鏈接文件模塊中,不能被其它文件模塊引用。反之沒有被static關鍵字修飾的全局變數則是外部變數,其它文件模塊可以通過extern關鍵字引用該全局變數並訪問。
要說明的是全局變數無論是內部變數還是外部變數,的存儲類別都是靜態的,也就是放到靜態內存區域中,它編譯鏈接階段就已經分配好了固定的內存。
搞清楚上面的內容,就很容易得出若把全局變數放在頭文件會有哪些問題;
一 對內部變數來說,每個include該頭文件的文件模塊中都會單獨為這個內部變數分配靜態內存空間,這個空間是相對獨立的,是一種空間浪費,同時還失去了全局變數訪問一致性的特點,實在沒有什麼意義。如果這個頭文件只被一個模塊使用,對於這個文件模塊來說應該沒啥問題。
二 對外部變數來講,這個頭文件被多個文件模塊include的情況下,鏈接過程會報錯,因為符號沖突,所有include這個頭文件的模塊都會有這個全局符號。在這個頭文件僅僅只被一個模塊include的時候可以正常使用。
經上分析得出要避免全局變數定義在頭文件中,因為當這個頭文件被多方include的時候會產生一些不必要的麻煩,就這么多。
全局變數作用域范圍較廣,被錯誤修改後排查定位問題比較困難,若非必要盡少使用。
下面說一下比較好的方式就是全局變數只定義在實現文件(.c,.m)中,對內部變數沒啥說的它只在文件模塊內部使用,對外部變數可以在該模塊頭文件中使用extern關鍵字修飾一下,這樣其它文件模塊只要直接include該頭文件就可以使用模塊中的外部變數了。
㈤ c語言做課程設計時為什麼每一個函數模塊都要用到文件
一個函數涉及的代碼是在內存中進行處理的,傻孩子。所以排序函數sort()當然不涉及到文件的操作。
文件操作,指的是對——磁碟文件,通常是硬碟,進行的操作。比如說讀、寫磁碟文件數據。
如果你不需要讀取磁碟文件,當然就不需要,文件操作。
㈥ 為什麼在C文件中包含
文件包含是指一個C語言源程序中將另一個C語言源程序包含進來,通過include預處理指令實現。
一般形式:
#include」被包含文件名」
或#include<被包含文件名>
2. 作用:將指定文件包含在當前文件中,插入至文件包含指令相應位置處。使用文件包 含指令,可以減少程序設計人員的重復勞動,提高程序開發效率。
3. 說明:
(1)被包含的文件一般指定為頭文件(*.h),也可為C程序等文件。
(2)一個include指令只能指定一個被包含文件,如果要包含n個文件,則要用到n條include指令。
(3)不能包含OBJ文件。文件包含是在編譯前進行處理,不是在連接時進行處理。
(4)當文件名用雙引號括起來時,系統先在當前目錄中尋找包含的文件,若找不到,再在系統指定的標准方式檢索其它目錄。而用尖括弧時,系統直接按指定的標准方式檢索。
一般系統提供的頭文件,用尖括弧。自定義的文件,用雙引號。
(5)被包含文件與當前文件,在預編譯後變成同一個文件,而非兩個文件。
(6)文件包含可以嵌套,但必須按順序包含。
㈦ c語言編程為什麼要多文件呢
源代碼確實是多文件的。不過編譯好的目標代碼在運行期調入內存後就無所謂文件的概念了,然而不同代碼段之間的界限仍然存在。
模塊化主要有以下幾個優點:
1.便於復用代碼。通用性強的重復的功能只要寫一遍就可以了,下次要用在其它程序上時只要更改很小的部分或者可以不用更改。
2.便於多人協作。在設計軟體之初就可以很清楚地分配各個開發部門的任務。模塊的編寫者本身只要關注他所寫的東西,清楚這一部分的功能,留出介面就可以了。另外,對於整個工程的負責人而言,這樣會方便瀏覽全局的工作進度,統籌人員安排。
3.便於修改和維護。如果能確定只是某個模塊有問題,在模塊內解決即可,不需要牽一發而動全身。要升級某一部分的功能,可以只針對具體的模塊重新開發,節約成本。
其實不只是C語言,許多其它語言也經常使用這種方法。開發大型軟體時這種方法非常有效(否則不明顯,或者反而有副作用)。對於軟體設計來說這不僅僅是一種風格,而是一種方法學了。
聲明include包含的函數是聲明外部函數,只是extern關鍵字可以省略。
聲明後直接調用就可以了。
----
[原創回答團]
㈧ C 語言中有調用關系的所有函數都必須放在同一源程序文件中怎麼理解啊
因為當需要用到另一個函數的時候,編譯器會在本文件中尋找需要的函數,如果不放在一個文件里就會導致程序中斷,所以有調用關系的所有函數都必須放在同一源程序文件中,比如有兩個函數 A()和B(),那麼如果在A函數中要調用B函數的話,A函數必須要能在本文件中找到B函數,這樣才能找到該函數的地址
(8)為什麼要把c語言放在文件中擴展閱讀:
函數
C程序是由一組變數或是函數的外部對象組成的。 函數是一個自我包含的完成一定相關功能的執行代碼段。我們可以把函數看成一個「黑盒子」,你只要將數據送進去就能得到結果,而函數內部究竟是如何工作的,外部程序是不知道的。
外部程序所知道的僅限於輸入給函數什麼以及函數輸出什麼。函數提供了編製程序的手段,使之容易讀、寫、理解、排除錯誤、修改和維護。
C程序中函數的數目實際上是不限的,如果說有什麼限制的話,那就是,一個C程序中必須至少有一個函數,而且其中必須有一個並且僅有一個以main為名,這個函數稱為主函數,整個程序從這個主函數開始執行。
C 語言程序鼓勵和提倡人們把一個大問題劃分成一個個子問題,對應於解決一個子問題編制一個函數,因此,C 語言程序一般是由大量的小函數而不是由少量大函數構成的,即所謂「小函數構成大程序」
這樣的好處是讓各部分相互充分獨立,並且任務單一。因而這些充分獨立的小模塊也可以作為一種固定規格的小「構件」, 用來構成新的大程序。
C語言發展的那麼多年來,用C語言開發的系統和程序浩如煙海。在發展的同時也積累了很多能直接使用的庫函數。
ANSI C提供了標准C語言庫函數。
C語言初學者比較喜歡的Turbo C2.0提供了400多個運行時函數,每個函數都完成特定的功能,用戶可隨意調用。這些函數總體分成輸入輸出函數、數學函數、字元串和內存函數、與BIOS和DOS有關的函數、 字元屏幕和圖形功能函數、過程式控制制函數、目錄函數等。
Windows系統所提供的Windows SDK中包含了數千個跟Windows應用程序開發相關的函數。
其他操作系統,如Linux,也同樣提供了大量的函數讓應用程序開發人員調用。
作為程序員應盡量熟悉目標平台庫函數其功能。這樣才能游刃有餘地開發特定平台的應用程序。比如作為Windows應用程序的開發者,應盡量熟悉Windows SDK;作為Linux應用程序開發者,應盡量熟悉Linux系統調用和POSIX函數規范。