春暖花开
雪化了,花开了,春天来了
posts - 149,comments - 125,trackbacks - 0
一、宏中“#”和“##”的用法:

        一般用法:使用“#”把宏参数变为一个字符串,用”##”把两个宏参数结合在一起

       例子:

#include <iostream>
using namespace std;

#define TEST1(x) (cout<<id##x<<endl);
#define TEST2(p) (cout<<#p<<endl);
int main()
{
    
int id1 = 1001;
    
int id2 = 1002;
    TEST1(
1);    // == cout<< id1 << endl;
    TEST2(2);    // == cout<< "2" << endl;
    TEST1(2);    // == cout<< id2 << endl;

    system(
"pause");
    
return 0;
}

二、防止一个头文件被重复包含
        #ifndef COMDEF_H
        #define COMDEF_H
        //头文件内容
        #endif
    当你所建的工程有多个源文件组成时,很可能会在多个文件里头包含了同一个头文件,如果借用上面的宏定义就能够避免同一个头文件被重复包含时进行多次编译。因为当它编译第一个头文件时总是没有定义#define COMDEF_H,那么它将编译一遍头文件中所有的内容,包括定义#define COMDEF_H。这样编译再往下进行时如果遇到同样要编译的头文件,那么由于语句#ifndef COMDEF_H的存在它将不再重复的编译这个头文件。

三、常用的宏定义
  __DATE__
  进行预处理的日期(“Mmm dd yyyy”形式的字符串文字)

  __FILE__
  代表当前源代码文件名的字符串文字

  __LINE__
  代表当前源代码中的行号的整数常量

  __TIME__
  源文件编译时间,格式微“hh:mm:ss”

参考文章:
   C中的预编译宏定义  http://blog.readnovel.com/article/htm/tid_900939.html
   C标准中一些预定义的宏 http://www.programfan.com/article/2883.html
   C语言常用宏定义技巧  http://blog.21ic.com/user1/3074/archives/2008/51567.html
   C语言宏定义技巧(常用宏定义) http://blog.21ic.com/user1/69/archives/2006/13695.html
   宏定义:http://blog.csdn.net/believefym/archive/2007/10/21/1836162.aspx

好好学习!
 
posted on 2008-12-01 13:54 Sandy 阅读(1871) 评论(0)  编辑 收藏 引用 所属分类: c++学习

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理