近來看了一下C++API,覺得有些用法有些不錯。做一點記錄。
預處理命令
#, ##命令
# 和 ## 操作符是和#define宏使用的.使用# 使在#後的首個參數返回爲一個帶引號的字符串. 例如, 命令
#define to_string( s ) #s
將會使編譯器把以下命令
cout << to_string( Hello World! ) << endl;
理解爲
cout << "Hello World!" << endl;
使用##連結##前後的內容. 例如, 命令
#define concatenate( x, y ) x ## y
將會使編譯器把
int xy = 10;
cout << concatenate( x, y ) << endl;
解釋爲
cout << xy << endl;
理所當然,將會在標準輸出處顯示'10'.
再看看API中_T是怎麼使用##命令的吧,查看_T,它是用宏_TEXT定義的,再看看_TEXT.
#define _T(x) __TEXT(x)
#define __TEXT(quote) L##quote
所有像_T(“char test”)轉出來就是L“char test”, 即寬字符的字符串。
預定義的變量
__LINE__ 和 __FILE__ 變量表示正在處理的當前行和當前文件.
__DATE__ 變量表示當前日期,格式爲month/day/year(月/日/年).
__TIME__ 變量描述當前的時間,格式爲hour:minute:second(時:分:秒).
_cplusplus 變量只在編譯一個C++程序時定義.
__STDC__ 變量在編譯一個C程序時定義,編譯C++時也有可能定義.
這些參數在不同的編譯器可能會有所不同, 但是一般是可用的. 這些變量是系統預定義好的,就和我們用#define宏定義語句定義好的一樣。
基本數據類型
C語言包含5個基本數據類型: void, integer, float, double, 和 char.
類型 描述
void 空類型
int 整型
float 浮點類型
double 雙精度浮點類型
char 字符類型
C++ 定義了另外兩個基本數據類型: bool 和 wchar_t.
類型 描述
bool 布爾類型, 值爲true 或 false
wchar_t 寬字符類型