stagefright中#define里的#和##的作用
来源:互联网 发布:我的世界手机版js制作 编辑:程序博客网 时间:2024/06/05 02:59
原贴:http://blog.csdn.net/mr_president/article/details/7348021
在Android 源代码/framework/base/media/libstagefright下面的OMXCodec.cpp文件中有这样的定义:
#define FACTORY_CREATE(name) \
static sp<MediaSource> Make##name(const sp<MediaSource> &source) { \
return new name(source); \
}
#define FACTORY_CREATE_ENCODER(name) \
static sp<MediaSource> Make##name(const sp<MediaSource> &source, const sp<MetaData> &meta) { \
return new name(source, meta); \
}
#define FACTORY_REF(name)
{#name,Make##name},
其中#define语句中的#是把参数字符串化,##是连接两个参数成为一个整体。
#define FACTORY_REF(name) { #name, Make##name }
中#name就是将传入的name进行字符串化,Make##name就是将Make跟name进行连接,使它们成为一个整体。
故,
FACTORY_CREATE_ENCODER(MP3Decoder) 的意思是:
static sp<MediaSource> MakeMP3Decoder(const sp<MediaSource> &source) {
return new MP3Decoder(source);
}
FACTORY_REF(MP3Decoder)的意思是:
{“MP3Decoder”, MakeMP3Decoder}
- stagefright中#define里的#和##的作用
- #define中#和##的作用
- #define 中 # 和 ## 的作用
- #define中#和##的作用
- #define中#和##的作用
- #define中#和##的作用
- #define中#和##的作用
- #define中#和##的作用
- #define中#和##的作用
- #define中#和##的作用
- define中#的作用
- #define中#和##以及 #@的作用
- 简述PHP中define()和const的作用和差别
- define中 #和##作用
- Linux编程中 #define _XOPEN_SOURCE的作用
- ecshop中define('IN_ECS', true)的作用
- ecshop中define('IN_ECS', true)的作用
- C++中 #ifndef #define #endif的作用
- 用了皮肤控件之后,报错:容量超出了最大容量 参数名:capacity
- jquery-dialog对话框的实现
- 超链接点击无效的实现方式
- 怎么使游戏按下home的时候进入暂停状态 然后再次进入点击按钮恢复?
- Android笔记
- stagefright中#define里的#和##的作用
- jquery ui 插件实例 (3)
- 持久化VariableInstance 报错
- jquery中模拟tabs效果易会代码(简单实用)
- Microsoft.Practices.EnterpriseLibrary.Common不能加载
- 懒惰、急躁和傲慢(Laziness, Impatience and hubris)
- Step-by-step learning C + +(chapter four summary____Array and Pointers)
- 数据库的三个范式总结
- Android基础教程(三)之-----简单的Button事件响应综合提示控件Toast的应用