__VA_ARGS__和##__VA_ARGS__的区别(转载)
参考链接:
#、##、__VA_ARGS__和##__VA_ARGS__的作用
linux中的 VA_ARGS 宏说明
最近看到linux的一段代码,对__VA_ARGS__和##__VA_ARGS__有点疑惑,所以在网上查了一下。
linux源码如下,函数功能就不废话了:
#define module_driver(__driver, __register, __unregister, ...) \
static int __init __driver##_init(void) \
{ \return __register(&(__driver) , ##__VA_ARGS__); \
} \
module_init(__driver##_init); \
static void __exit __driver##_exit(void) \
{ \__unregister(&(__driver) , ##__VA_ARGS__); \
} \
module_exit(__driver##_exit);
整理表格如下:
宏 | 功能 |
---|---|
’#‘ | 字符串化 |
‘##’ | 字符连接的功能 |
"__VA_ARGS__’ |
这个可变参数的宏是新的C99规范中新增的, 和变参函数中的... 一致
|
‘##__VA_ARGS__’ |
宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用,否则会编译出错
|
这里就不举例说明了,在开头的两个连接中举例很详细,不明白的网友,可以去看一下。
__VA_ARGS__和##__VA_ARGS__的区别(转载)相关推荐
- .NET 的 WCF 和 WebService 有什么区别?(转载)
.NET 的 WCF 和 WebService 有什么区别?(转载) [0]问题: WCF与 Web Service的区别是什么? 和ASP.NET Web Service有什么关系? WCF与ASP ...
- postfix中recipient/client/sender/helo四者的区别转载
postfix在main.cf中用下面四个做限制,那么这四者到底有什么区别? smtpd_recipient_restrictions smtpd_client_restrictions smtpd_ ...
- #、##、__VA_ARGS__和##__VA_ARGS__的作用
一.#用来把参数转换成字符串 例子一: #define P(A) printf("%s:%d\n",#A,A); int main(int argc, char **argv) { ...
- jquery和javascript的区别(转载自脚本之家)
jquery 就对javascript的一个扩展,封装,就是让javascript更好用,更简单,为了说明区别,下面与大家分享下JavaScript 与JQuery 常用方法比较 jquery 就对j ...
- arm920T与arm926的区别[转载]
ARM920(T)与ARM926(EJ-S)还是有不少区别的,粗的讲,前者基于ARMv4架构,后者基于ARM v5架构.其中,对于程序员来说,一个大的区别是,两者指令集不一样.926(ARM v5)新 ...
- php中this,self,parent三个关键字之间的区别(转载)
PHP5是一具备了大部分面向对象语言的特性的语言,比PHP4有 了很多的面向对象的特性,但是有部分概念也比较难以理解,这里我主要谈的是 this,self,parent三个关键字之间的区别.从字面上比 ...
- varchar和Nvarchar区别 ----转载
varchar和Nvarchar区别 Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示 如果还为了这个纠结,就直接看看后面的解 ...
- git fetch和git pull之间的区别--转载
原文地址:http://blog.csdn.net/a19881029/article/details/42245955 git fetch和git pull都可以用来更新本地库,它们之间有什么区别呢 ...
- 静态方法和实例化方法的区别 -转载
这是一个经常被时时提出来的问题,很多时候我们以为理解了.懂了,但深究一下,我们却发现并不懂. 方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简 ...
- GET和POST两种基本请求方法的区别(转载)
get与post请求的区别: 通常回答: GET在浏览器回退时是无害的,而POST会再次提交请求.GET产生的URL地址可以被Bookmark,而POST不可以.GET请求会被浏览器主动cache,而 ...
最新文章
- 打算看的书或正在看的书
- java生成和读取keystore_Java程序员必知:mybaties运行流程
- php转义和去掉html、php标签函数
- java spring-webflux netty
- Hadoop运维记录系列(十七)
- 转:javascript方法--bind()
- 机箱硬盘指示灯不亮_一文学会“剪不断,理还乱”的主板跳线与机箱连接
- Android项目实战(三十六):给背景加上阴影效果
- Jenkins使用及开发
- java中String.split()的注意事项
- python基础 函数
- 作为面试官,最近面试 Java 后端的感受!
- 智齿客服H5聊天链接接入及WebView不支持input file文件上传解决
- 新浪微博产品的细微体验,你发现了么?
- 图形API的简单了解
- Win10设置:输入法快捷键【仅保留中英切换】,其他花里胡哨快捷键全部删除
- 家庭宽带之IPv6网络测试
- 网狐精华版搭建视频教程
- mysql 5.7版本异常Expression #1 of ORDER BY clause is not in GROUP BY clause and contains 处理
- 斯尼格(SING) - 技术也将乌拉圭牛肉推到了最苛刻的市场
热门文章
- FragmentStatePagerAdapter写法
- 震精 - PostgreSQL 递归查询 - 树型数据按路径分组输出
- 初探Java8中的HashMap(转)
- struts2自己定义拦截器
- Docker简介(转)
- Apache下设置自动将http跳转到https方法
- 7.企业安全建设指南(金融行业安全架构与技术实践) --- 外包安全管理
- 17.企业应用架构模式 --- 会话状态模式
- 17.go 面向对象 interface
- 13.Linux/Unix 系统编程手册(上) -- 文件IO缓冲