c++-#define __allowed(p) __$allowed _##p

问题描述

#define __allowed(p) __$allowed _##p 1C
对##这个不理解,这个宏定义大约起什么用
#define __allowed(p) __$allowed _##p
有没有参考资料

解决方案

宏定义中 #表示对宏参数进行字符串化,就是左右加个引号,例如:
#define macro1 (arg1) #arg1
这样你调用
macro1(abc) 就等于""abc""

##代表的是连接
#define macro2 (arg1 arg2) arg1##arg2
调用
macro(""abc""efg"")就等于""abcefg""

解决方案二:
#define UNREFERENCED_PARAMETER(P) (P)

解决方案三:
##:表示连接前后两个字符串成为一个整体~

时间: 2024-08-04 02:41:51

c++-#define __allowed(p) __$allowed _##p的相关文章

宏定义中的##操作符和... and _ _VA_ARGS_ _

1.Preprocessor Glue: The ## Operator 预处理连接符:##操作符 Like the # operator, the ## operator can be used in the replacement section of a function-like macro.Additionally, it can be used in the replacement section of an object-like macro. The ## operator co

c++-//关于宏定义的问题?

问题描述 //关于宏定义的问题? // #define allowed(p) __$allowed_##p 问题: 上面的宏初步展开#define __allowed(p) __$allowed_p //##连接符 但是 这个$是什么意思? 如何展开$allowed_##p 这也是个宏定义么? 编译器怎么解释他的? 哪位大侠解释一下! 解决方案 标准C和C++都没这种用法的,这种用法是微软自己搞的一套,是N关于MAKE. $指定宏调用. NMAKE中的特殊字符表述如下: 若要将 NMAKE 特殊

一个PHP的QRcode类与大家分享_php技巧

类的代码: 复制代码 代码如下: define('QR_MODE_NUL', -1); define('QR_MODE_NUM', 0); define('QR_MODE_AN', 1); define('QR_MODE_8', 2); define('QR_MODE_KANJI', 3); define('QR_MODE_STRUCTURE', 4); // Levels of error correction. define('QR_ECLEVEL_L', 0); define('QR_EC

Sequelize 和 MySQL 对照

如果你觉得Sequelize的文档有点多.杂,不方便看,可以看看这篇. 在使用NodeJS来关系型操作数据库时,为了方便,通常都会选择一个合适的ORM(Object Relationship Model)框架.毕竟直接操作SQL比较繁琐,通过ORM框架,我们可以使用面向对象的方式来操作表.NodeJS社区有很多的ORM框架,我比较喜欢Sequelize,它功能丰富,可以非常方便的进行连表查询. 这篇文章我们就来看看,Sequelize是如何在SQL之上进行抽象.封装,从而提高开发效率的. 安装

国际C语言混乱代码大赛作品分析!

#include <stdio.h> main(t,_,a)char *a;{return!0<t?t<3? main(-79,-13,a+main(-87,1-_,main(-86,0,a+1)+a)):1,t<_?main(t+1,_,a):3,main(-94,-27+t,a)&&t==2?_<13? main(2,_+1,"%s %d %dn"):9:16:t<0?t<-72? main(_,t,"@n'

Javascript中的匿名函数与封装介绍

 这篇文章主要介绍了Javascript中的匿名函数与封装介绍,本文分析了jQuery 封装.Backbone 封装.Underscore 封装等内容,需要的朋友可以参考下     迷惑了一会儿不同JS库的封装后,终于有了点头绪.大致就是: 代码如下: 创建一个自调用匿名函数,设计参数window,并传入window对象. 而这个过程的目的则是, 代码如下: 使得自身的代码不会被其他代码污染,同时也可以不污染其他代码. jQuery 封装   于是找了个早期版本的jQuery,版本号是1.7.1

为什么需要amd规范

今天主要说说AMD规范在Web环境里的应用,以及为什么采用AMD规范.想了解AMD规范的可以点击这里 what AMD? 规定 define 来定义一个模块 规定 require 来请求一个模块 规定 exports 来导出一个模块对外公共的API 约定通用的模块依赖规范 使用AMD之前是怎么实现一个模块的呢? 下面是一个简单模块的例子. (function(global){ var module = { prop: 'name', method: function(){ // do stuff

Backbone源码分析(一)

距离上一篇博客有一段时间了,期间各种琐事萦绕.最主要的一件是,当我差不多将整个dojo核心源码看完,惊讶的发现dojo1.*的设计以是老态龙钟之象,而我沉溺在dojo中太久,已经不知道前端世界变成了什么样.这无异于晴天霹雳,霹的我目瞪口呆.汗流满面,惶惶不可终日.索性亡羊补牢为时未晚,这段期间虽有各种烦心事,但还能于百烦之中腾出点时间,看看源码已经是万中之幸.各种前端类库如浩瀚星辰,面对它们才能感觉到自身技术的浅薄,自身能力的低微.初出茅庐天下无敌,再练三年寸步难行,这就是我当前最真切的体悟.现

《高阶Perl》——第2章 分配表 2.1 配置文件处理

第2章 分 配 表 第1章介绍了如何用别的函数参数化函数的行为使函数更加灵活.例如,并没有把每次移动盘子就输出一条消息硬编码到hanoi()函数里,而是让其调用一个从外部传入的辅助函数.通过提供一个合适的辅助函数,可以使hanoi()输出一系列说明,或检查它自己的行动,或生成一个图形显示,而不必重新编写基本的算法.类似地,可以从total_size()函数的计算文件大小的行为中提取出目录遍历行为,得到一个更有价值和普遍适用的dir_walk()函数,它可以做许多不同的事情. 为了从hanoi()