近来看了一下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 宽字符类型