1. 程式人生 > 實用技巧 >C++對c的增強和擴充套件

C++對c的增強和擴充套件

C++對c的增強和擴充套件

全域性變數檢測增強

int c;

int c = 10;

在C下沒問題,在C++下不行,因為重定義。

函式檢測增強

C語言:返回值,形參型別,引數個數沒有檢測

但是C++中檢測了

型別轉換檢測增強

char *p = malloc(64)

c++下必須一致:

char *p = (char *)malloc(64)

struct 增強

C語言下結構體不能放函式:

C++下結構體可以放函式,可以簡化關鍵字struct

C++可以通過結構體裡的函式修改結構體裡的變數

bool型別擴充套件

c語言下沒有bool型別

c++下有bool型別:

bool會把非0的數轉為1來處理。

true 1

false 0

其實也就是一個巨集定義

三目運算子的增強

在c++下三目運算子其實返回的是一個變數

int a=10,int b=100;
a>b?a:b = 1000;
//b的值會被修改為100

在c語言下三目運算子返回的是一個值

const增強

c語言下const

全域性const

在全域性定義的const受到常量區的保護,是無法修改的

區域性const

可以採用指標的間接修改來處理。

c++下const

全域性const

和c語言是一樣的,間接和直接修改都不行

區域性const

通過間接修改可以程式設計完成,但是並不能修改

在c++中的函式中申明const變數的時候並沒有把該變數放到棧中,反而是一種類似與巨集定義的符號表,也就是一個鍵值對,const變數就是具體值