C 語言包含的資料類型如下圖所示:

一、資料類型與“模子”
short、int、long、char、float、double 這六個關鍵字代表C 語言裡的六種基本資料類型。
怎麼去了解它們呢? 舉個例子:見過藕煤球的那個東西吧?(沒見過?煤球總見過吧)。那個東西叫藕煤器,拿着它在和好的煤堆裡這麼一咔,一個煤球出來了。半徑12cm,12 個孔。不同型号的藕煤器咔出來的煤球大小不一樣,孔數也不一樣。這個藕煤器其實就是個模子。
現在我們聯想一下,short、int、long、char、float、double 這六個東東是不是很像不同類型的藕煤器啊?拿着它們在記憶體上咔咔咔,不同大小的記憶體就配置設定好了,當然别忘了給它們取個好聽的名字。
在32 位的系統上short 咔出來的記憶體大小是2 個byte;
int 咔出來的記憶體大小是4 個byte;
long 咔出來的記憶體大小是4 個byte;
float 咔出來的記憶體大小是4 個byte;
double 咔出來的記憶體大小是8 個byte;
char 咔出來的記憶體大小是1 個byte。
(注意這裡指一般情況,可能不同的平台還會有所不同,具體平台可以用sizeof 關鍵字測試一下)
很簡單吧?咔咔咔很爽吧?是很簡單,也确實很爽,但問題就是你咔出來這麼多記憶體塊,你總不能給他取名字叫做x1,x2,x3,x4,x5…或者長江1 号,長江2 号…吧。它們長得這麼像(不是你家的老大,老二,老三…),過一陣子你就會忘了到底哪個名字和哪個記憶體塊比對了(到底誰嫁給誰了啊?^_^)。是以呢,給他們取一個好的名字絕對重要。下面我們就來研究研究取什麼樣的名字好。
二、變量的命名規則
1、命名應當直覺且可以拼讀,可望文知意,便于記憶和閱讀。
辨別符最好采用英文單詞或其組合,不允許使用拼音。程式中的英文單詞一般不要太複雜,用詞應當準确。
2、命名的長度應當符合“min-length && max-information”原則。
C 是一種簡潔的語言, 命名也應該是簡潔的。例如變量名MaxVal 就比MaxValueUntilOverflow 好用。辨別符的長度一般不要過長,較長的單詞可通過去掉“元音”形成縮寫。
另外,英文詞盡量不縮寫,特别是非常用專業名詞,如果有縮寫,在同一系統中對同一單詞必須使用相同的表示法,并且注明其意思。
3、當辨別符由多個詞組成時,每個詞的第一個字母大寫,其餘全部小寫。比如:
int CurrentVal;
這樣的名字看起來比較清晰,遠比一長串字元好得多。
4、盡量避免名字中出現數字編号,如Value1,Value2 等,除非邏輯上的确需要編号。比如驅動開發時為管腳命名,非編号名字反而不好。
初學者總是喜歡用帶編号的變量名或函數名,這樣子看上去很簡單友善,但其實是一顆顆定時炸彈。這個習慣初學者一定要改過來。
5、對在多個檔案之間共同使用的全局變量或函數要加範圍限定符(建議使用子產品名(縮寫)作為範圍限定符)。
(GUI_ ,etc)辨別符的命名規則:
6、辨別符名分為兩部分:規範辨別符字首(字尾) + 含義辨別。非全局變量可以不用使用範圍限定符字首。
7、作用域字首命名規則。
8、資料類型字首命名規則。
9、含義辨別命名規則,變量命名使用名詞性詞組,函數命名使用動詞性詞組。例如:
變量含義辨別符構成:目标詞+ 動詞(的過去分詞)+ [狀語] + [目的地];
函數含義辨別符構成:動詞(一般現時)+目标詞+[狀語]+[目的地];
10、程式中不得出現僅靠大小寫區分的相似的辨別符。例如:
int x, X; 變量x 與X 容易混淆
void foo(int x); 函數foo 與FOO 容易混淆
void FOO(float x);
這裡還有一個要特别注意的就是1(數字1)和l(小寫字母l)之間,0(數字0)和o(小寫字母o)之間的差別。這兩對真是很難區分的,我曾經的一個同僚就被這個問題折騰了一次。
11、一個函數名禁止被用于其它之處。例如:
#include "c_standards.h"
void foo(int p_1)
{
int x = p_1;
}
void static_p(void)
{
int foo = 1u;
}
12、所有宏定義、枚舉常數、隻讀變量全用大寫字母命名,用下劃線分割單詞。例如:
const int MAX_LENGTH = 100; //這不是常量,而是一個隻讀變量,具體請往後看
#define FILE_PATH “/usr/tmp”
13、考慮到習慣性問題,局部變量中可采用通用的命名方式,僅限于n、i、j 等作為循環變量使用。
一定不要寫出如下這樣的代碼:
int p;
char i;
int c;
char * a;
一般來說習慣上用n,m,i,j,k 等表示int 類型的變量;c,ch 等表示字元類型變量;a 等表示數組;p 等表示指針。當然這僅僅是一般習慣,除了i,j,k 等可以用來表示循環變量外,别的字元變量名盡量不要使用。
14、定義變量的同時千萬千萬别忘了初始化。定義變量時編譯器并不一定清空了這塊記憶體,它的值可能是無效的資料。這個問題在記憶體管理那章有非常詳細的讨論,請參看。
15、不同類型資料之間的運算要注意精度擴充問題,一般低精度資料将向高精度資料擴充。
java中String,int,Integer,char、double類型轉換
java中String,int,Integer,char.double類型轉換----https://www.cnblogs.com/kangyu222/p/5866025.html
c語言基本資料類型short、int、long、char、float、double大小及命名規則
C 語言包含的資料類型: 一.資料類型與“模子”short.int.long.char.float.double 這六個關鍵字代表C 語言裡的六種基本資料類型. 怎麼去了解它們呢? 舉個例子:見過藕煤 ...
[No000066]python各種類型轉換-int,str,char,float,ord,hex,oct等
int(x [,base ]) #将x轉換為一個整數 long(x [,base ]) #将x轉換為一個長整數 float(x ) #将x轉換到一個浮點數 complex(real [,imag ]) ...
python各種類型轉換-int,str,char,float,ord,hex,oct等
int(x [,base ]) 将x轉換為一個整數 long(x [,base ]) 将x轉換為一個長整數 float(x ) 将x轉換到 ...
【python】python各種類型轉換-int,str,char,float,ord,hex,oct等
[python] int(x [,base ]) 将x轉換為一個整數 long(x [,base ]) 将x轉換為一個長整數 float(x ) ...
Linux基本資料類型大小——int,char,long int,long long int
轉自:http://paddy-w.iteye.com/blog/1403217 在Linux作業系統下使用GCC進行程式設計,目前一般的處理器為32位字寬,下面是/usr/include/limit.h ...
談談C語言的資料類型
本文摘要: 本文主要講述C語言中的資料類型,從基本的資料類型到派生的資料類型,從int ,char ,float double ....到指針,數組,函數,指向指針的指針,指向數組的指針,指向函數的指 ...
c語言之資料類型
#include int main(void) { float weight, value; printf("Are you worth your weight ...
C語言,資料類型
#include void f0(void) { printf("in linux:\n"); printf("sizeof(char) ...
随機推薦
YYModel 源碼解讀(一)之YYModel.h
#if __has_include() FOUNDATION_EXPORT double YYModelVersionNumber; FOUNDATI ...
rqnoj378 約會計劃
題目描述 cc是個超級帥哥,口才又好,rp極高(這句話似乎降rp),又非常的幽默,是以很多mm都跟他關系不錯.然而,最關鍵的是,cc能夠很好的調解各各妹妹間的關系.mm之間的關系及其複雜,cc必須嚴格 ...
管理windows防火牆
1.導出防火牆規則 netsh advfirewall export "c:\advfirewall.wfw" 2.禁用防火牆 netsh firewall set opmode ...
SVN上傳檔案注意事項-------------------養成良好的項目檔案上傳習慣
項目組的學弟經常把一些.obj檔案和debug目錄上傳到svn,這個習慣很不好,我說了很多次他總改不了,還是寫個文檔說清楚吧,以後查起來也友善. svn是一種版本控制工具,主要目的是用來管理代 ...
NAT學習筆記
NAT介紹 NAT, 全稱網絡位址轉換(Network Address Translation),是一種在IP封包通過路由器或防火牆時重寫來源IP位址或目的IP位址的技術. NAT的分類及介紹 NAT ...
Boost1.62+win7+VC2015編譯
下載下傳 通過boost官方網站, 或直接在source forge下載下傳boost_1_62_0. 可選包 Zlib library, 環境變量: ZLIB_SOURCE bzip2, 環境變量: BZI ...
html.day01
1.web标準: 1. 結構 (xhtml) 2. 表現(css) 3.行為(js) html 超文本标記語言 xhtml (嚴格型超文本标記語言) 2.規範: 1. 所有标簽(标記)都要 ...
HDU 2106 decimal system (進制轉化求和)
題意:給你n個r進制數,讓你求和. 析:思路就是先轉化成十進制,再加和. 代碼如下: #include #include #includ ...
Image 和byte[]之間的轉換
1.Image 轉 byte[] public byte[] GetByteByImage(Image image) { byte[] bt = null; try { if (!image.Equa ...
eclipse啟動項目
今天做的任務不多,沒有自己寫代碼,上午看了些文章,下午我司背景給配了配項目環境,全裝C槽了..以後有我好受的.. 看着背景操作,修改了N多配置,tomcat.redis.zkServer..Nginx ...