ここに私が解決しようとしている問題があります.Cでプログラミングしています.
構造体を初期化できる関数があります。
typedef struct {
int val1;
int val2;
} custom_t;
custom_t init_custom() {
custom_t temp;
temp.val1 = 5;
temp.val2 = 5;
return temp;
}
そして、次のように使用します。
custom_t some_name = init_custom();
custom_t を入力として取り、それを使用していくつかの作業を行うことができる 4 つの関数があります。
別のファイルには、マルチスレッド環境で実行される多くのライブラリ関数があります。これらのライブラリ関数はすべて、スレッドに関係なく、同じ custom_t 変数で作業を行う必要があります。
ライブラリ関数は custom_t 変数を渡されません。これは、別のユーザーが custom_t 変数を考えずにライブラリ関数を使用できるようにすることが目的であるためです。
ライブラリ関数を定義する名前空間で custom_t 変数をグローバルにする必要があると考えていますが、グローバル変数は const でなければならないというエラーが表示されます。
これを達成する方法がわかりません。私が得ることができるすべての助けに感謝します。私の説明が十分でなかった場合は、遠慮なく質問してください。詳しく説明します。
編集:変数の初期化のタイプミスを修正