[HORSETAIL]

花儿,总会有谢的时候

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  11 随笔 :: 21 文章 :: 7 评论 :: 0 Trackbacks
         #define 标识符 字符串
         
以上是宏命令的一般形式,上面所说的"字符串"不是我们平时所说的那个"字符串"变量.这点学要注意一下!!它只是我们将要代替的东西.哪怕是 int也可以.
         宏的作用就是在本文件中,用指定的标识符来代替字符串.在编译预处理的时候,将程序中该命令出现的所有标识符,用相应的字符串代替.这样我们就可以用很简单的名字代替一个很长的字符串(包括数字常量).
         当然,我们可以在需要的时候,告诉编译器,我们不再需要某个宏,让它从我们的程序上消失!!!
         用 #undef  命令可以告诉编译器,我们已经不再需要某个宏了.它的一般形式如下:
         #undef   标识符
                  
         下面是宏的几点说明:
NO.1      宏名(标识符)一般习惯用大写字符,这样方便我们区分变量.当然,这不是必须的,我们一样可以用小写字符命名!
NO.2      使用宏名代替一个字符串,可以减少我们重复书写某些字符串的工作量.但是它仅仅是字符串的简单替换,它不做正确性检查!!正因为它只是简单的替换.所以,使用不当,可能会造成程序代码的膨胀!!这就何不尝试了!
NO.3      宏定义不是C/C++编程语言的语句,所以它不必在行魔加分号.如果加了分号则连同分号一起进行置换!如:
#define HO 13.2;
...
float fd=HO+HO;
在宏展开侯:
float fd=13.2;+13.2;
...
很明显,这是一个错误的程序!!!!
NO.4      宏出现在程序中函数的外面,宏名的有效范围为定义宏名之后到源文件莫.我们也可以用 #undef  提前终止宏定义的作用域!
NO.5      我们也可以在宏定义的时候引用宏名,可以层层叠加!
#define R 3.0
#define  J 63
#define P 47*J
#define L R*J*P

这样 L 展开后
3.0*63*47*63


睡觉!!!!我也是新手,哪里错的麻烦提一下,好么
posted on 2007-02-05 00:19 [HORSETAIL] 阅读(291) 评论(0)  编辑 收藏 引用 所属分类: C/C++语言编程综合问题

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