二, 基本資料型別(上)

白夜行zz發表於2014-12-03

C語言的資料型別如下所示,我們計劃分三個模組講解。今天主要講第一個分支,基本型別~

C語言的資料型別

這一段對我們來說還是比較熟悉的,看的時候心態也可以放鬆一點~~下面我們正式開講

我們來看數值型別,這應該是我們對C語言最熟悉的部分了~下面的表格列出了幾乎所有數值型別的取值範圍:

數值型別的取值範圍

要注意的是,數值存在自動轉型的問題,如果是儲存的位數比較高的型別向比較低的型別進行轉型的時候,就有可能出現問題,比如:

int a;
float n = 2.5;
a = n/2;

這時候a的值依然是整數,為1,這是我們都很明但是程式碼一複雜就很容易忽略的問題。我們需要對不同資料的儲存長度有一個相對清晰的概念,這樣對防止資料越界也很有幫助。比如int 就不能超過32767,否則我們加著加著就加成了負數。。。 這是因為在 signed 的型別中最高一位是符號位,這一位為0表示正,為1表示負。

關於字元型別,char 的儲存空間是一個位元組,字元一般是以 ascII 碼方式進行儲存,這也是我們比較熟悉的。需要注意的是,字元常量可以同整型加減,字串不可以。

需要特別注意的是,C語言的基本型別中並不包含字串。實現字串的方式可以使用字元陣列,比如

static char c[]="BASIC\ndBASE";

同時一般我們需要包含string庫(#include "string.h"),包含這個庫之後我們就可以使用字串的操作函式了,比如,strcpy, strlen等。

基本的資料型別是我們都很熟悉的,我們就不展開大篇幅來細說了,看著也煩。注意上面提到的幾點就好,下面我們順便說說變數名的取名問題,起一個符合一般命名規則的變數名對於程式碼的可讀性還是很重要的,我比較喜歡的變數命名方法主要有以下幾點:

  1. 變數名首字母小寫,多個單片語合而成的,用下劃線分隔或者將除首字母之外的單詞首字母大寫。例如:

    int studentName; char my_love;

2.函式名應該體現函式的功能,要儘量用英語不要用拼音,丟人。。。。。同時應該在首字母前新增函式的返回型別,如果存在多個檔案,則最好還要在之前新增函式所在的檔名,並且用下劃線隔開,比如:

void Pwrctrl_vGetCmd(){
}

這就表示該函式是存在於Perctrl.c 檔案中,主要作用是 get command ,返回值為空,即 沒有返回值。這是我今天才寫的函式哦~~~~~

3.巨集定義的常量每一個字母都要大寫,過長的單詞間可以用下劃線分隔,一般不使用數字。

這些雖然都不是硬性的規則,但是對於程式碼的可讀性和可維護性還是十分重要的,雖然我命名一般比較飄忽。但是這幾個規則一般還是遵守的,越編到後來越發現,其實想起一個恰如其分能夠體現變數的功能的變數名還是很難的。尤其是以後起變數除了用i,j 做迴圈變數外,千萬別再用一兩個字母或者a1,b2,c3什麼的了,不僅丟人,程式碼一多過兩天就完全忘了自己前幾天用它是要幹什麼了。我們倆智慧車上在這方面其實沒少互相坑。。。尤其當時我要來你們的程式碼一開啟看到裡面變數都是 b, g1 ,z 什麼的,我就放棄試圖理解了。雖然我程式碼也寫的比較任性。。但是主要的問題不是這個,我的問題我們放在後面講,當然我也知道,一個 if 語句長度將近400個字元也是不會有人能看懂了。。。

下面佈置今天的作業嘿嘿嘿嘿~~~~

算了今天講的挺簡單的不留作業了~~~~~

相關文章