C常量,巨集,列舉及函式

2021-06-21 08:16:20 字數 1333 閱讀 3399

為什麼使用常量:

防止資料在程式中被任意修改,造成前後不一致,可以方便批量進行調整,能做到快捷,方便,安全

常量: 直接常量

命名常量:const關鍵字,#define定義——巨集語句

eg: 巨集定義不需要型別,只是文字替換

為什麼使用列舉:

提高**可讀性,便於程式維護,enum關鍵字

列舉的值:

列舉型別定義第一項為0,後面項依次加1

為什麼使用函式:

將程式模組化,實現**復用,使**便於維護,

c語言函式

: 系統函式

自定義函式

函式頭:

返回型別  函式名稱(引數列表)

函式體:

{…………………}

自定義函式

:宣告和定義

行參:變數,陣列

實參:常量,變數,陣列元素,表示式,陣列

•實參在將本身的值傳遞給形參時複製乙份然後交給形參

•函式內所操作的形參的值是實參的複製品,所以在函式內改變了形參的值,並不會影響實參的值

區域性變數儲存型別

•auto

–自動型變數,不寫預設也是自動型,每次使用時被建立,出了其作用域後自動釋放

•static

–靜態型變數,定義為靜態變數之後,在程式執行期間一直保持,直到程式執行結束

•register

–暫存器型變數,和自動型變數具有相同的持續時間,但是被儲存到了暫存器內,但是有些編譯器並不支援此型別,那麼就當做auto型使用

全域性變數儲存型別

•無修飾符

–在程式執行時建立一次,程式結束時銷毀,允許在同專案的其他檔案中使用該變數

•static

–程式執行時建立一次,程式結束時銷毀,不允許在同專案的其他檔案中進行使用

•extern

–擴充套件其他檔案中的全域性變數到本檔案進行使用,並不建立新的變數,而是使用已有的同名變數

–函式預設為extern,extern可以用來擴充套件擴充套件其他檔案中的函式到本檔案使用

函式遞迴:

函式中自己呼叫自己本身的行為

•遞迴從**上看要比迭代簡潔,但是系統消耗要大於迭代

•注意實際使用時遞迴的層次不應該太多,否則計算時間過長

函式式巨集定義:

#define square(x) x * x

例如:給定語句

square(10 + 20)

會被替換為

10 + 20 * 10 + 20

這與我們的設想不一致,所以需要將巨集定義為:

square(x) (x) * (x)

上述替換結果為

(10 + 20) * (10 + 20)

巨集跟函式及常量總結

當你 呼叫乙個過程既被宣告成 函式又被宣告成巨集時,你可以用如下兩種方法來強制編譯器使用函式或巨集 編譯器缺省會使用巨集 1 使用強制 型別轉換 include a toupper a 使用巨集 a toupper a 使用函式,因為toupper被強制轉換成函式指標。2 使用 undef incl...

巨集和列舉及typedef

巨集和列舉及typedef 巨集和列舉及typedef三者有相似的功能,但又有各自獨特的用途和特點,以下主要介紹三者的用法和注意事項。1.列舉 a.列舉的目的值提高程式的可讀性。b.列舉型別的宣告是指用一組符號名稱來代替一組整數常量。c.列舉常量都是整數型別的。d.在宣告列舉型別時如果沒有對符號名稱...

C 常量 列舉 結構體

一 常量 常量 const 常量。常量名要大寫。一定不會變化的值才能宣告為常量。語法 const 型別 常量名 常量值 注意 在定義時賦值,在其他地方不允許賦值。常量可以重複的使用 二 列舉 列舉 讓我們定義一種列舉型別並且在定義這種型別時我們要指定這個型別的所有值 語法 enum 自己起的型別名稱...