私CURRENT_DIR
は自分のプログラムで何度も電話をかけます(以下を参照)。プログラムの実行中に実行可能パスが変更されないように、この関数を呼び出すたびに実行可能パスを再度定義しても意味がありません。
したがって、この値が一度設定されると、再度設定されるべきではないという解決策を探しています。
私の現在の解決策は次のとおりです。すべての値を0に設定して静的変数を作成し、ifステートメントテストで最初の文字がnullでないかどうかを確認し、trueの場合は設定します。しかし、それはエレガントではないように見えます..多分より良い解決策があるかもしれません..マクロを含むいくつかのモデルを使用することによって、私は知りません。
コードを参照してください:
#define CURRENT_DIR ({ \
static char buffer[MAX_PATH + 1] = { 0 }; \
if(buffer[0] != '\0') \
getcurrentdir(buffer, MAX_PATH); \
buffer; \
})