auto f = 3.14; // double
auto s("hello"); // const char*
auto z = new auto(9); // int*
auto x1 = 5, x2 = 5.0, x3 = 'r'; // 錯誤,必須是同一型別
#include "iostream"
using namespace std;
// static儲存類例項
static int count = 10; // 靜態全域性變數
void fun(void);
int main()
return 0;
}void fun(void)
static修飾類的成員變數:
#include using namespace std;
class data
~data(){}
void show()
private:
const int i=100; // 錯誤!!!
};//或者通過這樣的方式來進行初始化
foo::foo():i(100){}
// 第乙個檔案main.cpp
#include int count ;
extern void write_extern();
int main()
// 第二個檔案support.cpp
#include extern int count;
void write_extern(void)
在這裡,第二個檔案中的 extern 關鍵字用於宣告已經在第乙個檔案 main.cpp 中定義的 count。現在 ,編譯這兩個檔案,如下所示:
g++ main.cpp support.cpp -o write
這會產生 write 可執行程式,嘗試執行 write,它會產生下列結果:
./write
thread_local int x; // 命名空間下的全域性變數
class x
;static thread_local std::string x::s; // x::s 是需要定義的
void foo()
C 中類所佔的儲存空間
先看程式再分析 include using namespace std class a virtual void set int a virtual a class b struct c void main cout 分析如下 類所佔的空間 類成員變數所佔空間 4 如果存在虛函式的話 注意 1 類成...
C 中類所佔的儲存空間
分析如下 類所佔的空間 類成員變數所佔空間 4 如果存在虛函式的話 注意 1 類成員所佔的空間可能會涉及到記憶體資料對齊的問題,需要謹慎考慮 1 當成員變數的長度都小於處理器位數時,所有成員變數所佔的總空間一定是最長的變數所佔空間的整數倍 2 如果某一成員變數長度大於處理器位數,則以處理器的位數為對...
C 的儲存類
儲存類定義 c 程式中變數 函式的範圍 可見性 和生命週期。這些說明符放置在它們所修飾的型別之前。下面列出 c 程式中可用的儲存類 從 c 11 開始,auto 關鍵字不再是 c 儲存類說明符,且 register 關鍵字被棄用。自 c 11 以來,auto關鍵字用於兩種情況 宣告變數時根據初始化表...