//第一种情况作为Stringizing Operator(#),叫字符串化。
#define stringer( x ) printf( #x )
/* 第二种情况作为char Operator(#@) 叫做字符化 */
#define charger(x) #@x
/* 第三种情况作为Token-Pasting Operator(##) 叫做连接符 */
#define Token(x) (x##x)
int _tmain(int argc, _TCHAR* argv[])
{
// stringer( In quotes in the printf function call\n );
// stringer( "In quotes when printed to the screen"\n );
// stringer( "This: \" prints an escaped double quote" );
//
// // 第二种情况
// cout<< "第二种情况"<<endl;
// char a =charger(b);
// cout <<a;
//
// char aa ='b';
// // 第三种情况,连接符
// cout << "第三种情况"<<endl;
#define stringer( x ) printf( #x )
/* 第二种情况作为char Operator(#@) 叫做字符化 */
#define charger(x) #@x
/* 第三种情况作为Token-Pasting Operator(##) 叫做连接符 */
#define Token(x) (x##x)
int _tmain(int argc, _TCHAR* argv[])
{
// stringer( In quotes in the printf function call\n );
// stringer( "In quotes when printed to the screen"\n );
// stringer( "This: \" prints an escaped double quote" );
//
// // 第二种情况
// cout<< "第二种情况"<<endl;
// char a =charger(b);
// cout <<a;
//
// char aa ='b';
// // 第三种情况,连接符
// cout << "第三种情况"<<endl;
// printf("aaa%c", Token(a));
}