本帖最后由 乘简 于 2018-8-7 13:12 编辑
写的代码高深莫测啊,,这里我没看懂啊,希望楼主指点一下。
这里是声明部分:
[C] 纯文本查看 复制代码 //MIDIFILE的函数调用约定
#ifndef Midi_c
#define Midi_c _cdecl
#endif // !Midi_c
//MIDIFILE的符号导出规则
#ifndef Midi_x
#ifdef __cplusplus
#define Midi_x extern"C"
#else // !__cplusplus
#define Midi_x extern
#endif // !__cplusplus
#endif // !Midi_x
//MIDIFILE的导出函数
#define Midi_fn(fn,rt) Midi_x rt Midi_c fn
这里是调用:
[C] 纯文本查看 复制代码 //分析文件
if(!MidiParserStart(&Parser))
{
fputs("Could not start the parser.\n",stderr);
goto BadRet;
}
这里是实现:
[C] 纯文本查看 复制代码 //=============================================================================
//MidiParserStart:
//分析MIDI文件,为播放做准备。失败返回零,成功返回非零
//-----------------------------------------------------------------------------
Midi_fn(MidiParserStart,int)
(
MidiParser_p pParser
)
{
...
return 0;
}
============================================================================
哈哈。。。已经看懂了。
翻译过来就是:
extern int _cdecl MidiParserStart(MidiParser_p pParser){...}
|