私はC言語を学習しており、構造体をコールバック関数に渡そうとしています。オンラインリソースを通過しましたが、構造をコールバック関数に渡すことができませんでした。ここに私のコードです。構造体をコールバック関数に引数として渡す方法
// myvariables.h
struct callbackStruct
{
int a;
int b;
int c;
};
extern struct callbackStruct callbackStructObject;
typedef void (*callback)(struct callbackStruct);
extern void callback_reg(callback pointerRefCallback);
// Operations.c
struct callbackStruct callbackStructObject;
void callback_reg(callback pointerRefCallback) {
(*pointerRefCallback)(callbackStructObject);
}
// main.c
struct callbackStruct myCallbackStruct1;
void my_callback(struct callbackStruct myCallbackStruct) {
printf("A value:%d" + myCallbackStruct.a);
}
int main()
{
callback ptr_my_callback = my_callback(myCallbackStruct1);
callback_reg(ptr_my_callback);
return 0;
}
誰でもこのシナリオを解決できますか?
問題を説明できますか? (コンパイラ/リンカのエラー、奇妙な動作...) – purplepsycho
あなたは[MCVE](http://stackoverflow.com/help/mcve)を投稿できますか? – purplepsycho
Wikipediaの記事には、構造体を[コールバック](https://en.wikipedia.org/wiki/Callback_(computer_programming))に渡すCの例があります。 – user3078414