匿名
未登录
登录
Peter_Matthew的Wiki
搜索
查看“C++:预处理/宏定义”的源代码
来自Peter_Matthew的Wiki
命名空间
C++
讨论
更多
更多
页面操作
阅读
查看源代码
历史
←
C++:预处理/宏定义
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
<nowiki>#define</nowiki>是C++中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率。 == define的剖析 == <nowiki>#define</nowiki>命令用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。 该命令有两种格式:一种是不带参数的宏定义,另一种是带参数的宏定义。 === 不带参数的宏定义 === 格式: <pre>#define 标识符 一串内容</pre> 这里所说的一串内容可以是数字,可以是字符,可以是字符串,可以是表达式,也可以为空,等等,具体是什么要根据你实际需求来确定。 这个预处理的作用是将标识符展开,是一个“换”的作用。 例如,在库文件math.h中,对圆周率Π有着如下定义 <pre> #define M_PI 3.14159265358979323846 </pre> 那么在编译的时候,所有的M_PI都会被替换成3.14159265358979323846 说明: *宏名一般用大写<br>这是为了与一般变量、函数等用名区分开<br> *使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。<br>例如:数组大小常用宏定义<br> <pre> #define MAXN 10005 int a[MAXN],b[MAXN]; </pre> *预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。<br>这也意味着编译错误时的反馈经常显示的与未展开的代码不一样。 *宏定义末尾不加分号;<br>与文件包含类似,宏定义也不以分号结束,而是以换行结尾,在同一行的内容都将被视为宏定义的内容。 *宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。 *可以用#undef命令终止宏定义的作用域<br>例如 <pre> #undef M_PI </pre> *宏定义可以嵌套 *字符串" "中永远不包含宏 *宏定义不分配内存,变量定义分配内存。<br>宏定义会在编译时被替换从而消除。 __FORCETOC__
返回至“
C++:预处理/宏定义
”。
导航
导航
首页
最近更改
随机页面
我的其他网站
🏠我的博客
📕我的笔记
Wiki工具
Wiki工具
特殊页面
页面工具
页面工具
用户页面工具
更多
链入页面
相关更改
页面信息
页面日志