- 1
- 0
- 约4.46千字
- 约 9页
- 2018-06-11 发布于河南
- 举报
/rusty/archive/2011/03/27/1996806.html
#include #define f a,b a##b
#define g a #a
#define h a g a int main printf %d\n, f 1,2 ;//数12 printf %s\n, h f 1,2 ;//字符串12” printf %s\n, g f 1,2 ;//“f 1,2 ” return 0; C语言的宏中,#的功能是将其后面的宏参数进行字符串化操作
##被称为连接符,用来将两连接为一个。
#、##运算符之外的,在宏替换之前对实参本身进行充分的展开。
12和f 1,2 ,为什么会这样呢?因为宏定义的展开不象函数执行那样由里到外。
h f 1,2 ,由于h a 是非#或##的普通宏,需要先宏展开其参数a,即展开f 1,2 为12,则h a 宏替换为h 12 ,进而宏替换为g 12 , 进而宏替换为12。#将右边的参数做整体的字符串替换,即便是另一个宏,也不展开,所以,g f 1,2 - f 1,2 。
/fly1988happy/archive/2012/04/10/座机电话号码.html
宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。
1.不带参数的宏定义:
#define 标识符 字符串 在
您可能关注的文档
- 3 想看冬天的小熊.ppt
- 4 仪式类——少先队员入队仪式.doc
- 9针RS232-422-485接口定义.doc
- 2004年捷克队员今何在.docx
- 2014学年执勤队员安排.doc
- ARCGIS10.0 定义投影及配准.docx
- Java基础上机题_分类整理版.doc
- js对象定义及this用法.docx
- Mathematica 定义函数与变换规则.doc
- Mini USB管脚定义.doc
- 2026住宅小区消防改造建筑方案(执行版,含总平面布置/疏散流线/消防节点).docx
- 2026制造工厂人力资源规划与排班配置方案(执行版,含排班模型/岗位编制/缺口清单).docx
- 2026人工智能企业内训实施计划(执行版,含培训安排/案例任务/考核清单).docx
- 2026仓储物流园总平面布置建筑方案(执行版,含车流组织/仓位分区/消防间距).docx
- 2026老旧办公楼节能改造建筑方案(执行版,含围护结构/节能设备/施工节点).docx
- 2026Python文件批量重命名与归档脚本方案(执行版,含文件样例/处理脚本/归档规则).docx
- 2026企业会计准则长期股权投资核算指南(执行版,含成本法分录/权益法分录/减值检查表).docx
- 2026社区养老服务中心项目可行性研究报告(执行版,含服务需求/建设内容/运营预算).docx
- 2026物流园冷链仓储项目可行性研究报告(执行版,含选址分析/设备配置/财务测算).docx
- 2026企业会计准则现金流量表编制口径手册(执行版,含分类口径/填报模板/勾稽检查表).docx
原创力文档

文档评论(0)