私はまだ C に慣れていませんが、小さな MIDI オーディオ ユニット (Xcode 4.3.3) を使って、C をよりよく理解しようとしています。私は一日中これに対する答えを探していましたが、問題が何であるかを正確に理解していません. 問題のコードは次のとおりです。
//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);
しかし、それがエラーを引き起こすかどうか/理由がわかりません。誰かが助けを提供できれば幸いです。