私はアルゴリズムのための小さなCコードを書いています。主なターゲットは組込みマイクロコントローラですが、テスト目的ではMatlab/Pythonインタフェースが必要です。C配列を固定サイズまたは可変サイズのいずれかで宣言するための最も簡単な方法は?
私はC90の使用を必要とする組み込みプログラミングスタンダード(MISRA-C 2004)に従っており、malloc
とお友達の使用はお勧めしません。したがって、コード内のすべての配列は、コンパイル時にメモリが割り当てられます。入力配列のサイズを変更する場合は、コードを再コンパイルする必要があります。これはマイクロコントローラのシナリオでは問題ありません。 しかし、Matlab/Pythonでプロトタイプを作成すると、入力配列のサイズがかなり変化し、毎回再コンパイルすることはオプションのようには思えません。この場合、C99の使用は許容され、実行時に配列のサイズを決定する必要があります。
問題は次のとおりです。これらの2つのシナリオを同じコードで共存させ、コードをきれいに保つにはどのようなオプションがありますか?
私の主な関心事は、コードを簡単に保守する方法です。 #ifdefを使用して、静的に割り当てられた配列または動的に割り当てられた配列のいずれかを使用することを検討しました。しかし、あまりにも多くの配列があると私は思う。#ifdefはコードが醜いものに見える。
サイズのランタイム値はどのようにして決まりますか?おそらく、それは計算されるか、どこかから入力されなければならない。静的サイズのケースでは、その計算/ IOをスキップするための条件付き( 'if ifまたは' if)を避けることはできません。 –
あなたのPythonコードでは、関連するビットの.cと.hコードを生成することができます。それは自動的に生成されたアプローチであるため、維持管理が容易になります。 – TJD
@TJD自動生成されたアプローチも良いアイデアです。提案していただきありがとうございます。 – user1069152