Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7723927
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: C/C++

2011-05-31 10:37:56

  1. /*
  2.  *    不带参数的宏定义
  3.  *    Lzy     2011-5-28
  4.  */
  5. #define PI 3.14        /*定义宏PI*/

  6. void func()
  7. {
  8.     ...
  9. }

  10. #undef PI        /*终止PI的作用域*/

  11. int main(void)
  12. {
  13.     ...
  14. }


  15. /*
  16.  *    带参数的宏定义
  17.  *    Lzy     2011-5-28
  18.  */
  19. #include <stdio.h>
  20. #define MAX(a,b) (a>b)?a:b            /* 定义带参数的宏 */

  21. int main()
  22. {
  23.     int x,y,max;                    /* 定义3个整型变量 */
  24.     printf("Please input two integers: ");
  25.     scanf("%d%d",&x,&y);                /* 从键盘读入两个整数 */
  26.     max=MAX(x,y);                     /* 用实际参数x和y替换上面的形式参数a和b */
  27.                                 /* 展开后的形式为:max=(x>y)?x:y; */
  28.     printf("Max = %d\n",max);             /* 输出最大值 */
  29.     return 0;
  30. }

 

条件编译 

 #if ~ #endif

1.一般格式

     if   常量表达式

               程序段1

      [else

               程序段2]

     endif

2.功能:当表达式为非0(“逻辑真”)时,编译程序段1,否则编译程序段2

 

 #ifdef ~ #endif

1.一般格式

      ifdef  标识符

                程序段1

       [else

                程序段2]  

       endif

2.功能:当“标识符”已经被 #define命令定义过,则编译程序段1,否则编译程序段2

 

#ifndef ~ #endif

    格式与#ifdef ~ #endif命令一样,功能正好与之相反。

   

   

文件包含允许嵌套,这种情况下一个头文件有可能会被多次包含在一个源文件中。为了避免这种现象,可以使用如下形式

 

#ifndef HEAD_H 

#define HEAD_H

   

    ...

   

#endif

阅读(2261) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~