アルゴリズム用の小さなCコードを書いています。主なターゲットは組み込みマイクロコントローラーですが、テスト目的では、Matlab/Pythonインターフェイスが必要です。
私は、C90の使用を要求する組み込みプログラミング標準(MISRA-C 2004)に従っておりmalloc
、友人の使用を思いとどまらせています。したがって、コード内のすべての配列には、コンパイル時にメモリが割り当てられます。入力配列のサイズを変更する場合は、コードを再コンパイルする必要があります。これは、マイクロコントローラーのシナリオでは問題ありません。ただし、Matlab / Pythonを使用してプロトタイピングする場合、入力配列のサイズはかなり頻繁に変更され、毎回再コンパイルすることはオプションのようには思えません。この場合、C99の使用は許容され、配列のサイズは実行時に決定する必要があります。
問題は、コードをクリーンに保ちながら、これら2つのシナリオを同じコードで共存させるためにCでどのようなオプションがありますか?
私の主な関心事は、コードを保守しやすくする方法であることを強調する必要があります。#ifdefを使用して、静的に割り当てられた配列または動的に割り当てられた配列を取得することを検討しました。しかし、配列が多すぎるので、#ifdefを使用するとコードが見苦しく見えると思います。