c筆記 概述

2021-06-22 05:16:59 字數 3620 閱讀 3040

我想任何事物的產生都離不開歷史,看過《矽谷傳奇》 《作業系統的革命》《浪潮之巔》,了解下歷史。乙個新事物的誕生,都是當時需要改變現狀或者解決什麼問題,c也不列外。在c之前有 ibm 的 fortran ,蓋茨擅長的basic  ,說到這個想有人說windows是vb開發的,很可能是由蓋茨起初使用basic 開發軟體聯想到的吧,c的誕生和當初開發unix密不可分,都是貝爾實驗室的,當時的intel 推出 8086開始有了棧暫存器,軟硬的環境都滿足了。

linux上的編譯器當然是gnc/gcc了,unix上的是cc,windows上常用的是cl。

細化:c源程式->編譯預處理->編譯->.優化程式->匯程式設計序->鏈結程式->可執行檔案。

在gcc 編譯的時候加上 -v 引數可以檢視到編譯過程。

c 使用被劃分為兩部分的這一方法是程式便於模組化,鏈結器將我們的程式與預編譯的庫**結合起來。

c 沒有官方標準,美國國家標準組織ansi發布第乙個了c標準稱為c89標準或c90,也常稱為ansi c.在之前《the c programming language》稱為大家接受的標準。通常稱為k&r c 或經典 c。在c90最初原則上修改標準發布了c99標準,gcc下需要加引數  -std=c99開啟 c99標準。

第乙個經典的程式

#include int main(void)

#include 語句是c預處理的指令,不屬於c語言語句,體現了c語言的乙個基本設計原則:避免不必要的成分。

main()函式

int main(void ) ,int 指明了main()函式的返回型別,main函式返回給系統,

在vs 下 main函式可以這樣寫 :

void main()

但並不是標準形式,在gcc c99下會提示警告:

warning: return type of 'main' is not 'int' [-wmain]

多行注釋:

/*  我是多行注釋

*/c99增加了單行注釋:

//iso/ansi c關鍵字

auto

enum

restrict

unsigned

break

extern

return

void

case

float

short

volatile

char

forsigned

while

const

goto

sizeof

_bool

continue

ifstatic

_complex

default

inline

struct

_imaginary

doint

switch

double

long

typeof

else

register

union

_bool _complex   _imaginary  為c99標準新增。

那麼new關鍵字在c語言中是合法的識別符號嗎?

在vs中如果字尾名為cpp那麼將會報錯,但如果字尾名為c,那麼不會報錯,new 是c++的關鍵字,但不是c的關鍵字。

37個關鍵字解釋:

一、資料型別關鍵字(12個):

1、char [tʃɑ:]:宣告字元型變數或函式 

2、double [ˈdʌbəl] :宣告雙精度變數或函式 

3、enum :宣告列舉型別 

4、float [fləut] :宣告浮點型變數或函式 

5、int[int]: 宣告整型變數或函式 

6、long  [lɔŋ] :宣告長整型變數或函式 

7、short  [ʃɔ:t] :宣告短整型變數或函式

8、signed:宣告有符號型別變數或函式 

9、struct:宣告結構體變數或函式 

10、union  [ˈju:niən]:宣告共用體(聯合)資料型別

11、unsigned  [ʌn'saind]:宣告無符號型別變數或函式 

12、void [vɔid] :宣告函式無返回值或無引數,宣告無型別指標(基本上就這三個作用)  

二、控制語句關鍵字(12個):

a迴圈語句 

1、for [fə, fɔ:]:一種迴圈語句(可意會不可言傳)

2、do [du, du:] :迴圈語句的迴圈體

3、while [wail] :迴圈語句的迴圈條件

4、break [breik]:跳出當前迴圈 

b條件語句

1、if [if]: 條件語句 

2、else [els] :條件語句否定分支(與 if 連用) 

3、goto:無條件跳轉語句 

c開關語句 

1、switch [switʃ]:用於開關語句

2、case  [keis]:開關語句分支 

3、default [diˈfɔ:lt]:開關語句中的「其他」分支 

d返回語句

1、return  [riˈtə:n]:子程式返回語句(可以帶引數,也看不帶引數)  

三、儲存型別關鍵字(4個)

1、auto [ˈɔ:təu] :宣告自動變數(一般不使用) 

2、extern:宣告變數是在其他檔案正宣告(也可以看做是引用變數) 

3、register [ˈredʒistə]:宣告積存器變數

4、static[ˈstætik] :宣告靜態變數  

四、其它關鍵字(4個):

1、const :宣告唯讀變數 (*注意是變數*)

2、sizeof:計算資料型別長度 

3、typedef:用以給資料型別取別名(當然還有其他作用)

4、volatile [ˈvɔlətail]:說明變數在程式執行中可被隱含地改變

五、c99新增(5個)

1、inline 關鍵字用來定義乙個類的內聯函式,引入它的主要原因是用它替代c中表示式形式的巨集定義

引入原因:c語言是乙個效率很高的語言,這種巨集定義在形式及使用上像乙個函式,但它使用預處理器實現,沒有了引數壓棧,**生成 等一系列的操作

2、restrict 關鍵字只用於限定指標;該關鍵字用於告知編譯器,所有修改該指標所指向內容的操作全部都是基於(base on)該指標的,即不存在其它進行修改操作的途徑;這樣的後果是幫助編譯器進行更好的**優化,生成更有效率的彙編**。

3、_bool 關鍵字是用於表示布林值。包含標準標頭檔案 stdbool.h 後,我們可以用 bool 代替 _bool ,true 代替 1 ,false 代替 0 。

4、_complex and _imaginary 關鍵字

c99標準中定義的複數型別如下:float_complex; float_imaginary; double_complex; double_imaginary; long double_complex; long double_imaginary. 

標頭檔案中定義了complex和imaginary巨集,並將它們擴充套件為_complex和_imaginary,因此在編寫新的應用程式時,應該使用標頭檔案中的complex和imaginary巨集。

C學習筆記 概述

1 語言簡潔 c語言共有32個關鍵字,9種控制語句。2 運算子豐富 共有34中運算子。c語言把括號 賦值 強制型別轉換都作為運算子處理。3 資料結構豐富 資料型別有整形 實型 字元型 陣列型別 指標型別 結構體型別 共用體型別。能實現各種複雜的資料結構,如鍊表 樹 棧等。4 具有結構化得控制語句 用...

C 筆記1 概述

c 筆記1 概述 作者1982 年,美國 at t 公司貝爾實驗室的 bjarne stroustrup 博士在 c 語言的基礎上引入並擴充了物件導向的概念,發明了一種新的程式語言。為了表達該語言與 c 語言的淵源關係,它被命名為 c 而 bjarne stroustrup 本賈尼 史特勞斯特盧普 ...

C 學習筆記 STL概述

c 語言的核心優勢就是便於軟體的重用。c 中有兩個方面體現重用 1.物件導向的思想 繼承和多型,標準類庫 2.generic programming 泛型程式設計 的思想 模板機制以及標準模板庫 stl 也就是說使用模板的程式設計。stl standard template library 就是一些...