2
Cコーディング設計-関数ポインター?
私が持っているPIC18F46K22をしてXC8コンパイラでそれをプログラムします。最後に、私は、搭載したPCのようなシステムがあるでしょうstdinし、をstdout。したがって、メインループには、新しい入力があるかどうかをチェックする関数があります。入力がある場合、それに応じて関数が呼び出されます。たとえば、Aを入力するstdinと、PICはBを入力したときに呼び出される関数のfunction_A代わりに、次のような関数を実行しますfunction_B。 関数でPICが完了したら、新しい入力が関数に送信されるようにします。したがって、Aを押すとRS232トランスミッタが開き、その瞬間からすべての入力がRS232経由で送信されます。最終的に、プロジェクトはスタンドアロンのテキストエディターです。そのため、Aを押すとファイルシステムが開き、その瞬間からテキストの編集は行われず、ファイルのリストを確認します。つまり、上と下を押すことは、テキスト編集環境とは異なることを意味します。 私はこれをCでプログラムする方法について多くのことを考えてきました。昨晩、これを考えて、可能かどうか、可能であればどのようにしたらよいかを知りたいと思います。私がやりたいことは: main機能のような関数を呼び出しますfunction_A function_Aグローバル変数function_addrを関数のアドレスポインターに変更しますin_function_A その瞬間から、新しい入力があるときにmain関数を呼び出しfunction_addrます。 したがって、必要なのは、ゼロmainかどうかをチェックする関数function_addrです。もしそうなら、「通常の」関数を呼び出す必要がありますfunction_A。そうでない場合、関数at function_addrを呼び出す必要があります。またfunction_A、function_addrへのポインタに変更するが必要in_function_Aです。 注:ファイルシステム関数を閉じる必要がある場合は、0にis_function_A変更function_addrするだけです。 だから基本的に私の質問は 関数のアドレスを取得(および変数に格納) 指定されたアドレスで関数を呼び出す