[C++]語法增強

#include <iostream>

//語法增強
void n01()
{
//C語言中的變量都必須在作用域開始的位置定義!!
//C++中更強調語言的“實用性”,所有的變量都可以在需要使用時再定義。
int i = 0;
printf("aaa\n");
int k = 0;
}

void n02()
{
//register關鍵字的變化
//register關鍵字請求“編譯器”將局部變量存儲於寄存器中
//C語言中無法取得register變量地址
//在C++中依然支持register關鍵字
//C++編譯器有自己的優化方式,不使用register也可能做優化
//C++中可以取得register變量的地址
register int i = 10;
printf("&i = %d\n", &i);
}

void n03()
{
/*
在C語言中,重複定義多個同名的全局變量是合法的
在C++中,不允許定義多個同名的全局變量
C語言中多個同名的全局變量最終會被鏈接到全局數據區的同一個地址空間上
int g_var;
int g_var = 1;
*/
}

struct st{
char name[10];
int age;
};

void n04()
{
//struct類型的加強:
//C語言的struct定義了一組變量的集合,C編譯器並不認爲這是一種新的類型
//C++中的struct是一個新類型的定義聲明
st t = {"jlran", 22};
printf("%s %d\n", t.name, t.age);
}

void n05(){
//在C語言中
//int f(    );表示返回值爲int,接受任意參數的函數
//int f(void);表示返回值爲int的無參函數
//在C++中
//int f(  );和int f(void)具有相同的意義,都表示返回值爲int的無參函數
}

int main()
{
n01();
n02();
n03();
n04();
getchar();
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章