10 C語言關鍵細節

2021-09-02 04:08:06 字數 1940 閱讀 8658

作業系統的主要任務是管理所有資源,為產生直接價值的程式(各種應用程式)提供服務,所以作業系統就是管理者和服務者。

作業系統負責管理和資源調配,應用程式負責具體的直接勞動,當應用程式需要使用系統資源(如記憶體、cpu、硬體操作等)時需要通過api函式向作業系統發出申請,然後作業系統響應,幫助應用程式執行功能。

c庫函式

在封裝api函式時,盡量使用了同一套介面,所以封裝出的庫函式相似,但也有差異。所以在乙個作業系統上寫的應用程式不可能直接在另乙個作業系統上面編譯執行,於是就有了可移植的問題。

作業系統資源管理

(1)cpu管理

作業系統對cpu的分配。

(2)記憶體管理

記憶體是任務的生存空間,記憶體管理就是作業系統給程序分配記憶體空間,程序結束後,釋放相應的記憶體。

(3)任務管理

任務就是程序,也就是使用者的應用程式,也包括作業系統的各種軟體等,作業系統管理這些應用程式如何切換以及如何有效的工作。

(4)檔案管理

檔案管理是作業系統對檔案儲存空間進行分配、維護和**,同時負責檔案的索引、共享和檔案保護。

(5)i/o裝置管理

作業系統與外圍的資料互動,管理各種硬體裝置,如顯示器、硬碟和印表機等。

普通函式的返回值

如果函式指定返回型別為void,則可以不加return語句;如果函式指定除void之外的其他返回型別,則必須在函式加入return語句。

main函式的返回值

main()函式的兩種定義方式:

(1)不帶引數

int main(void)

(2)帶引數

int main(int argc, char *argv[ ])

或者int main(int argc, char **argv)

0是main函式的返回值,返回0說明程式正常執行,程式執行結束,返回非0說明程式異常。所以main函式中返回值的意義,不僅僅是乙個返回值,還說明結束程式、程式是否執行正常。

主函式main的第乙個引數是命令列中的字串個數,即程式執行的時候給main函式傳遞的引數個數,取名為argc(argument count引數個數);第二引數是乙個指向字串的指標陣列,命令列中的每乙個字元都被儲存在記憶體中,並分配乙個指標指向它,一般寫成argv(argument value)

main函式傳參注意以下幾點:

(1)main函式傳參都是通過字串傳進去的

(2)main函式只有被呼叫時傳參,各個引數(字串)之間是通過空格來間隔的

(3)在程式內部如果使用argv,一定先檢驗argc。

描述一段還沒有具體使用的記憶體時需要使用void型別

』\0』、『0』、0和null的區別

'\0』是乙個轉義字元,它對應的ascii編碼值時0,本質就是0;字串的結尾標誌;

'0』是乙個數字,對應的ascii編碼值是48,本質是48;一般用來獲取0的ascii碼值;

0是乙個數字,就是0,本質就是0;一般用來比較乙個int型別的數字是否等於0;

null是乙個表示式,是強制型別轉換成void * 型別的0,本質是0;用來比較指標是否是乙個空指標。

c語言和組合語言的區別

組合語言和及其操作相對應,組合語言知識cpu機器碼的助記符,用組合語言寫程式必須擁有機器的思維;

c語言(高階語言)對低階語言進行了封裝(c語言的編譯器完成),給程式設計師提供了乙個接近人類思維的語法特徵,程式設計師不用過多考慮及其原理,而可以按照自己的邏輯來程式設計,如陣列、結構體、指標。

程式除錯手段

(1)單步除錯,利用偵錯程式進行單步除錯,最大的好處是直觀,能夠幫忙找到問題,缺點是限制性大、速度慢。

(2)硬體除錯,利用產品的硬體進行除錯,適合合適裸機除錯。

(3)列印資訊,利用printf函式列印除錯,比較常用。

(4)log檔案,日誌檔案是系統執行過程中在特定時列印的一些除錯資訊。log檔案記錄這些除錯資訊,供後續追查問題,適用於系統或者大型程式的除錯。

10 C語言迴圈結構 一

學習重點 學習內容 for迴圈格式 for 表示式1 表示式2 表示式3 for 初值 條件 增量 語句 迴圈體 注意 3個表示式均可省略,但分號不可以省略 程式例項 求1 2 3 99 100 include int main int i,sum 0 for i 1 i 100 i sum i s...

高質量C C總結10 C 實踐細節總結10

這裡總結了我個人在程式設計過程中注意到的細節,在這裡進行總結。1 資料最好使用private作用域,這也是物件導向語言需要注意的特點之一。class rectangle2.引數盡量使用引用來傳遞,如果不想改變引數的值可以加上const。不在像c語言中傳遞值了,傳遞value會傳遞全部byte,所佔資...

10 C語言輸出菱形(詳解版)

菱形,就是如下所示的圖形,總行數與總列數相等 寫乙個程式,根據使用者輸入的總行數,列印出菱形。這個題目主要是找出規律,考察讀者的邏輯思維。你可以從第一行開始,遍歷所有的列,也可以從第一列開始,遍歷所有的行。下面的程式從第一行開始,遍歷所有的列。設菱形的總行數為line,總列數為column,當前行為...