首页 > 编程语言 > 详细

C++学习笔记——预处理命令

时间:2015-10-11 13:59:05      阅读:232      评论:0      收藏:0      [点我收藏+]

宏定义命令#define

1、不带参数宏定义

用来产生与一个字符串对应的常量字符串,格式如下:

#define 宏名 常量串

预处理后,文件中凡出现该字符串均用其对应的常量串代替,替换的过程成为宏替换或宏展开。宏替换只是字符串和标识符之间的简单替换,预处理本身不做任何数据类型的和合法性检查,也不分配内存空间。

2、带参数的宏定义

带参数的宏定义的形式很想定义一个函数,格式为:

#define 宏名(形参表) 表达式串

例如:

#define s(a,b) (a)*(b)/2

程序中可使用s(a,b),预处理后产生中间文件,其中s(a,b)被替换成(a)*(b)/2。注意,宏定义时形参通常要用括号括起来,否则容易导致逻辑错误。

例如,如果定义:

#define s(a,b) a*b/2

那么程序中的s(7+5,4+2)就会被宏展开为7+5*4+2/2,不符合程序员定义的真正的意图。

带参宏定义形式上想定义函数,但它与函数有本质不同,宏定义仍然只是产生字符串替代,不存在分配内存空间和参数传递。

C++学习笔记——预处理命令

原文:http://www.cnblogs.com/lzhryan/p/4869137.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!