自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C++語(yǔ)法總結(jié)之談

開發(fā) 后端
下面給大家介紹下C++語(yǔ)法和一些基本概念,包括C++和C的區(qū)別、語(yǔ)言符號(hào) 、空白字符 、預(yù)處理命令等相關(guān)問(wèn)題。

在講解C++中的C++語(yǔ)法之前,先讓大家理解下C與C++之間的區(qū)別,C和C++ C++源于C。 C:面向結(jié)構(gòu)的程序設(shè)計(jì)語(yǔ)言。 C++:面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。 C++繼承C語(yǔ)言的優(yōu)點(diǎn),同時(shí)增加面向?qū)ο筇匦浴?

C++程序的組成

(1)預(yù)處理命令

以#開頭。三類預(yù)處理命令。

A 宏定義命令。

B 文件包含命令。

C 條件編譯命令。

(2)語(yǔ)句

(3)輸入和輸出

(4)變量

(5)函數(shù)

語(yǔ)言符號(hào)

C++語(yǔ)法中,編譯器識(shí)別的基本元素是“語(yǔ)言符號(hào)”,一個(gè)語(yǔ)言符號(hào)是編譯器不能分成組成成分元素的源程序文本。

語(yǔ)言符號(hào)包括:關(guān)鍵詞、標(biāo)識(shí)符、常量、字符串文字、運(yùn)算符、標(biāo)點(diǎn)字符。

空白字符

空格、制表、換行、回車、換頁(yè)、縱向制表 (vertical tab)和換行(newline)字符都稱為空白字符(white-space),因?yàn)樗鼈兙哂邢嗤墓δ?。即作為打印?yè)上單詞和行之間的空白,使其更容易閱讀。通過(guò)空白字符和其它語(yǔ)言符號(hào),例如運(yùn)算符和標(biāo)點(diǎn),從而對(duì)語(yǔ)言符號(hào)進(jìn)行定界。

當(dāng)對(duì)代碼進(jìn)行詞法分析時(shí),C++編譯器忽略空白字符,除非使用它們作為分隔符或者字符常量或字符串文字的組成成分。使用空白字符使程序更具可讀性。 注意編譯器也把注釋作為空白字符處理。

首先重復(fù)一句Bjarne的話:“我們的系統(tǒng)已經(jīng)是極度復(fù)雜的了,為了避開C++的復(fù)雜性而干脆不用C++(Linus的做法),無(wú)異于因噎廢食?!痹谒锌捎肅和C++的領(lǐng)域,C++都是比C更好的語(yǔ)言。當(dāng)我說(shuō)“更好的”時(shí)候,我說(shuō)的是C++擁有比C更安全的類型檢查、更好的抽象機(jī)制、更優(yōu)秀的庫(kù)。

當(dāng)然,凡事都有例外,如果你做的項(xiàng)目1)不大。2)編碼中用不到什么抽象機(jī)制,甚至ADT(抽象數(shù)據(jù)類型,例如std::complex這種不含多態(tài)和繼承的)也用不到,RAII也用不到,異常也用不到。3)你連基礎(chǔ)庫(kù)(如,簡(jiǎn)化資源管理的智能指針、智能容器)都用不著。

那么也許你用C的確沒問(wèn)題;所以如果你的情況如此,不用和我爭(zhēng)論,因?yàn)槲覠o(wú)法反駁你。我們這里說(shuō)的領(lǐng)域大致是Bjarne在“C++應(yīng)用列表”里面列出來(lái)的那些地方。 底線是:如果把C++中的諸多不必要的復(fù)雜性去掉,留下那些本質(zhì)的,重要的語(yǔ)言特性,簡(jiǎn)化語(yǔ)言模型,消除歷史包袱。

即便是C++語(yǔ)法的反對(duì)者也許也很難找到理由說(shuō)“我還是不用C++”。在我看來(lái),一個(gè)真正從實(shí)踐意義上理性反對(duì)使用C++的人只有一個(gè)理由:C++的復(fù)雜性帶來(lái)的混亂抵消乃至超過(guò)了C++的抽象機(jī)制和庫(kù)(在他的特定項(xiàng)目中)帶來(lái)的好處。

值得注意的是,這里需要避免一個(gè)陷阱,就是一旦人們認(rèn)定了“C++不好”,那么這個(gè)理由就會(huì)“長(zhǎng)出自己的腳來(lái)”,即,就算我們拿掉C++的復(fù)雜性,他們可能也會(huì)堅(jiān)持還是不用C++語(yǔ)法并為之找一堆理由。

我假定你不是這樣的人。不過(guò),也許最可能的是他會(huì)說(shuō):“問(wèn)題是我們今天用的C++并非如此(簡(jiǎn)潔),你的假設(shè)不成立。”是的,我的假設(shè)不成立。但雖然我們無(wú)法消除復(fù)雜性,我們實(shí)際上是可以容易地避開復(fù)雜性,避短揚(yáng)長(zhǎng)的。這也是本文的要點(diǎn),容我后面再詳述。

【編輯推薦】

  1. C與C++中標(biāo)準(zhǔn)輸入實(shí)現(xiàn)方式上的一點(diǎn)區(qū)別
  2. C++編譯器如何對(duì)Const常量進(jìn)行分配存儲(chǔ)空間
  3. C++類庫(kù)設(shè)計(jì)的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語(yǔ)言的幾種方法
  5. 如何更好的進(jìn)行C++代碼編制
責(zé)任編輯:chenqingxiang 來(lái)源: IT專家網(wǎng)
相關(guān)推薦

2010-01-18 10:53:26

2010-01-21 18:00:59

C++語(yǔ)言

2010-01-27 16:52:31

C++語(yǔ)言學(xué)習(xí)

2010-01-26 17:53:05

C++入門學(xué)習(xí)

2010-01-27 15:54:49

C++實(shí)現(xiàn)程序

2010-01-15 14:52:33

Visual C++

2010-01-21 09:34:57

C++語(yǔ)法

2010-01-15 10:48:29

C++程序代碼

2011-07-14 10:12:50

C++

2010-01-15 16:37:28

Visual C++

2010-02-22 09:43:42

學(xué)習(xí)Python語(yǔ)言

2010-02-02 13:37:12

如何學(xué)習(xí)Python

2010-02-07 15:12:24

學(xué)習(xí)Android

2010-01-22 16:35:41

C++開發(fā)

2010-01-26 17:11:13

C++編程

2010-02-05 15:47:00

Android JDK

2010-03-02 14:37:05

Android開源語(yǔ)言

2010-02-05 11:23:01

C++聲明語(yǔ)法

2010-02-03 15:52:02

Python學(xué)習(xí)研究

2010-02-06 13:36:57

學(xué)習(xí)Android程序
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)