C/C++宏及基本數據類型

近來看了一下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     寬字符類型

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章