我还是 C 的新手,但试图通过一个小型 MIDI 音频单元(在 Xcode 4.3.3 中)更好地理解它。我整天都在寻找这个问题的答案,但仍然不明白到底是什么问题。这是有问题的代码:
//MyMIDINotifyProc.h
#ifndef MIDIInstrumentUnit_CallbackProcs_h
#define MIDIInstrumentUnit_CallbackProcs_h
void MyMIDINotifyProc (const MIDINotification *message, void *refCon);
#endif
//MyMIDINotifyProc.c
#include <CoreMIDI/CoreMIDI.h>
#include "MyMIDINotifyProc.h"
void MyMIDINotifyProc (const MIDINotification *message, void *refCon) {
//manage notification
}
在标题定义中,我得到了这个:
! Cannot combine with previous 'struct' declaration specifier
我确保定义匹配并尝试重命名它们,但我仍然在我的 .c 文件中得到它:
! Redefinition of 'MyMIDINotifyProc' as different kind of symbol
这将 .h 定义指向“以前的定义”。
我知道 CoreMIDI 框架中的 MIDIServices.h 定义:
typedef void
(*MIDINotifyProc)(const MIDINotification *message, void *refCon);
但我不明白是否/为什么会导致错误。如果有人能提供一些帮助,我将不胜感激。