私は多くの小さな単位のインライン関数をヘッダファイルに入れました。これは多くのコンパイル単位に含まれています。 コンパイラによってコードが正しくインライン展開され、プログラムは魅力的に機能します。ヘッダがインライン関数でいっぱいで、ヘッダファイルの外にコードを移動してインラインのすべてをインライン化できますか?
が、今のヘッダファイルは、私がこのような何かを考え、それを読みやすくするために(ヘッダファイルであるために)非常に珍しい何か、 です:
#ifndef MY_HEADER_H
#define MU_HEADER_H
static inline
void my_fnct (my_param a);
#include "my_header.inline.c"
#endif
とファイルmy_header.inline.c
は次のようになります。
static inline
void my_fnct (my_param a)
{
// .. my code ..
}
これらの機能を使用するには、ヘッダーファイルを含めるだけです。
私の質問は:ヘッダーファイルをあまりにも多くのコードで埋めることなくこれを達成するより良い方法がありますか? または私はこれを行うことができ、他の開発者が問題なくこのコードを理解することを期待していますか?
ヘッダーにインライン関数があると、もう一度問題がありますか?インライン関数は非常に短く、1ライナーでなければなりません。 – littleadv
コードのパフォーマンスに関しては、重要なことがどのように見えるかは唯一のものです。すべてのものが含まれているあなたのコンパイラの減速は何ですか?私の経験では、現代のコンパイラではこのようなことはごくわずかです。また、何百もの設定オプションを混在させるという手間がかかりません。 –