C/C++宏及基本数据类型

来源:互联网 发布:电信网络诈骗论文 编辑:程序博客网 时间:2024/06/10 07:13

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