文档章节

#的在宏定义中的作用

seanking
 seanking
发布于 2016/02/17 13:47
字数 145
阅读 8
收藏 0
#

在C/C++中#可以将宏的变量名称转换成字符串

例如MFC源码中

struct AFX_MAP_MESSAGE
{
	UINT    nMsg;
	LPCSTR  lpszMsg;
};

#define DEFINE_MESSAGE(wm)  { wm, #wm }

static const AFX_MAP_MESSAGE allMessages[] =
{
	DEFINE_MESSAGE(WM_CREATE),
	DEFINE_MESSAGE(WM_DESTROY),
	DEFINE_MESSAGE(WM_MOVE),
//此处省略
	DEFINE_MESSAGE(WM_DEVICECHANGE),
	{ 0, NULL, }    // end of message list
};

#undef DEFINE_MESSAGE

通过这种方法可以方便的形成枚举,常数,宏名的字符串输出列表。通过下面的代码可以将值转变成成字符串

UINT nMsg = WM_CREATE; 
LPCSTR lpszMsgName = NULL;
const AFX_MAP_MESSAGE* pMapMsg = allMessages;
for (/*null*/; pMapMsg->lpszMsg != NULL; pMapMsg++)
{
	if (pMapMsg->nMsg == nMsg)
	{
		lpszMsgName = pMapMsg->lpszMsg;
		break;
	}
}



© 著作权归作者所有

共有 人打赏支持
seanking
粉丝 3
博文 14
码字总数 5960
作品 0
杭州
高级程序员
私信 提问
C语言基础-07-预处理指令1-宏定义

预处理指令简介 1.C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编...

Corwien
2016/03/16
5
0
关于C/C++中宏定义的一些新认识

在项目开发的过程中会遇到很多的宏定义,宏定义的作用目前本人知道的有三种有法: 第一种: #define OK 1 这种用法可以直接了当的表明代码的用意,从而防止“魔数”的出现,恰当的宏定义一些...

王维来
2016/11/12
309
0
一起来学习 系统封装接口层- CMSIS-OS 之freeRTOS

原文链接:http://blog.csdn.net/cornrn/article/details/72473845 在这个实时操作系统泛滥的年代,有这么一个系统封装接口层还是蛮有必要的。前些时间偶然间在STM32最新的固件库中就发现了这...

u014572382
2017/11/15
0
0
十五、预处理指令1-宏定义

说明:这个C语言专题,是学习iOS开发的前奏。也为了让有面向对象语言开发经验的程序员,能够快速上手C语言。如果你还没有编程经验,或者对C语言、iOS开发不感兴趣,请忽略 预处理指令简介 1....

长平狐
2013/03/28
224
0
“#”的迷雾

在代码中使用Autolayout时,大家都会使用这个宏,这个宏可以生成一个变量名到变量值映射的Dictionary。比如将会生成一个的Dictionary。它是怎么做到的呢?我们来看看这个宏的定义: 这个宏定...

hejunbinlan
2016/08/01
5
0

没有更多内容

加载失败,请刷新页面

加载更多

用PyTorch创建一个图像分类器?So easy!(Part 1)

摘要: 本文将为你介绍为何要重用神经网络?哪部分可以重用,哪部分不可以重用。了解完这些基础概念,你就可以自行创建一个图像分类器了。 经过了几个月的学习和实践,我完成了优达学城网站上...

阿里云官方博客
9分钟前
0
0
ssh使用正确的密码登录服务器被拒绝

1、用一个普通用户登录服务器被拒绝。 2、在服务器上,tail -f /var/log/secure, 看到: Dec 19 11:03:20 mmi5 sshd[11126]: pam_tally2(sshd:auth): user carrot (1003) tally 144, deny 3 ......

gelare
9分钟前
0
0
基于腾讯AI Lab词向量进行未知词、短语向量补齐与域内相似词搜索

AI Lab开源大规模高质量中文词向量数据,800万中文词随你用,质量非常高,就是一个词向量.txt文件都有16G之多,太夸张了。。不过的确非常有特点: ⒈ 覆盖率(Coverage): 该词向量数据包含...

火力全開
12分钟前
0
0
Shiro简介——《跟我学Shiro》

1、《跟我学Shiro》PDF完结版下载 2、shiro简介——《跟我学Shiro》 3、shiro demo

近在咫尺远在天涯
12分钟前
0
0
教你一个vue小技巧,一般人我不说的

本文由云+社区发表 1. 需求 最近的项目中,需要实现在vue框架中动态渲染带提示框的单选/多选文本框,具体的效果如下图所示,在输入框聚焦时,前端组件通过接收的kv参数渲染出选项,用户点击选...

腾讯云加社区
15分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部