##用来连接前后两个参数,把它们变成一个字符串。

内核中有很多的宏定义,在宏定义

define

中经常看到两个字符串##和#,这里把它的用法做一下说明:

##

是一个连接符号,用于把参数连在一起,例如:

#define  FOO(arg) my##arg

FOO(abc)

相当于

myabc

#define CSS_DELETE_SERVIC_EX(ClassName) \
{ \
Delete##ClassName(); \
}

#define CSS_ADD_SERVIC_EX_EXTERN(ClassName) \
extern void Add##ClassName(BYTE, DWORD, DWORD, WORD, WORD, DWORD, DWORD);

#define CSS_MODIFY_SERVIC_EX_EXTERN(ClassName) \
extern void Modify##ClassName(BYTE, DWORD, DWORD, WORD, WORD, DWORD, DWORD);

#define CSS_DEL_SERVIC_EX_EXTERN(ClassName) \
extern void Delete##ClassName();

转载于:https://www.cnblogs.com/atoman/p/7344827.html

C/C++中的##用法相关推荐

  1. c++中static_cast用法与uchar/char的区别

    1.c++中static_cast用法 static_cast是指显性类型强制转换,如: int a = static_cast<int>(120.34); 结果为a= 120. 和C语言 ...

  2. 简单介绍Python中异常处理用法

    这篇文章主要给大家分享的是 Python中异常处理用法,为了保证程序的健壮性与容错性,即在遇到错误时候程序不会崩溃,我们需要对异常进行处理,下面来看看文章对此的用法,需要的朋友可以参考一下 为了保证程 ...

  3. 关于OpenCV中常见函数用法总结

    关于OpenCV中常见函数用法总结 一 一般Mat的赋值操作 二 求Mat中的最大值以及最小值 三 randn()函数给图像添加高斯噪声 四 mean()函数的用法 五 系统计时器 六 矩阵之间的四则 ...

  4. java中import用法

    java中import用法 单类型导入(single-type-import),例如import java.io.File; 按需类型导入(type-import-on-demand),例如 impo ...

  5. 一个线程中lock用法的经典实例

    1 /* 2 该实例是一个线程中lock用法的经典实例,使得到的balance不会为负数 3 同时初始化十个线程,启动十个,但由于加锁,能够启动调用WithDraw方法的可能只能是其中几个 4 作者: ...

  6. 几个比较好用的Windows API在C#中的用法。

    几个比较好用的Windows API在C#中的用法. #region Windows Api 定义 ///   /// 模拟鼠标事件   ///   /// 鼠标事件的Enum   /// X座标   ...

  7. python管道界面_python中管道用法入门实例

    本文实例讲述了python中管道用法.分享给大家供大家参考.具体如下: #!coding=utf-8 import multiprocessing def consumer(pipe): output ...

  8. MVC中HtmlHelper用法大全

    MVC中HtmlHelper用法大全参考 解析MVC中HtmlHelper控件7个大类中各个控件的主要使用方法(1) 2012-02-27 16:25 HtmlHelper类在命令System.Web ...

  9. mysql raiserror_RAISERROR在SQL Server数据库中的用法

    raiserror  是由单词 raise error 组成 raise  增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ser ...

  10. 查询前几条记录SQL在不同数据库中的用法

    13,(1)查询前几条记录SQL在不同数据库中的用法; 1. ORACLE SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. INFORMIX SELECT FIR ...

最新文章

  1. 实操教程|详细记录solov2的ncnn实现和优化
  2. html 密码框自动填充,解决chrom浏览器input密码框自动填充
  3. php 循环从数据库分页取数据批量修改数据
  4. 实心等腰直角三角形。
  5. 坐在马桶上看算法:Dijkstra最短路算法
  6. c语言绝对循环,c语言之循环
  7. mysql 大量列 动态变量_aardio动态mysql变量设置
  8. 04. 二维数组中的查找
  9. Unity WebGL自带VideoPlayer播放视频
  10. 运筹学实验报告c语言,运筹学教案-实验.doc
  11. tif怎么转化为jpg_tif怎么批量转换成jpg
  12. 武林传奇之七剑下天山java游戏开发商_武林传奇2之七剑下天山的配方
  13. python 多态app_**python多态
  14. mysql常用函数整理
  15. Android Studio - 北极狐 | 2020.3.1 补丁 2 现已推出
  16. java处理保留小数点后几位
  17. js中公有方法、特权方法、静态方法
  18. 数据分析的六大黄金法则
  19. PEO-b-PTMPM的嵌段共聚物复合囊泡/具有pH响应性的纳米颗粒/卤化银纳米粒子/聚合物纳米
  20. docsify 建立目录树脚本

热门文章

  1. 利用jdbc做一个购买的事务
  2. 课堂练习---最低价格买书
  3. 【转】Android:ListView常见错位之CheckBox错位
  4. 建议15: 使用dynamic来简化反射实现
  5. 云计算将使IT人失业?惠普推云计算裁员九千!程序员如何面对即将到来的产业大调整?...
  6. 看django视频笔记
  7. 基于linux-2.6.35的class_create(),device_create解析
  8. centos安装时卡住不动_转子流量计转子或指针停在某一位置不动的原因及处理方法...
  9. HAProxy实现负载均衡及高可用集群(corosync+pacemaker)
  10. kali-linux下搭建DVWA环境