struct my_structには、compute()という関数ポインタがあります。構造体ポインタエラー
struct my_struct
{
double (*compute) (double input);
}
別のファイルでは、その構造体を初期化して、その関数を別のファイルにポイントすることができます。
error: expected '=', ',', ';', 'asm', or '__attribute__' before '.' token
私が使用した時間の構造体のたくさんのデータメンバ使用:
static const struct my_struct data;
data.compute = ......
問題は関係なく、私は、私はdata.computeため、次のエラーを取得するための関数ポインタを設定したもの、ではありません'。'私は関数ポインタを使ったことはありません。ここに必要なものがありますか?
構造体を 'const'として定義していますので、これは初期化することしかできず、初期化の後で代入することはできません。しかし、それはあなたが得ているものとは異なるエラーです。あたかも 'data'が単純な単語ではないかのように振る舞います。マクロが奇妙なものに展開されているかのように、あるいはそれらの行に沿って何かに展開されているかのようです。構造体の型はヘッダーで宣言されていますか? '}'の後にセミコロンが付きますか? –
ええ、constは問題ではありません。私はそれを削除しようとしましたが、同じエラーが発生するだけです。あなたが話している最後の部分をどのように解決するか考えていますか? – Bob
コードが不十分です - あなたはMCVE([MCVE])を提供していません - あなたが見ているエラーをコンパイルして見ることができるコードはありません。ヘッダーと問題を示す最小限のコードセットが必要です関数内に 'data.compute = ...'を書いていますか? (_Hmmm:私はそうではないと思われます - あなたは初期化 '... data = {...};'を使うか、関数内で代入を移動する必要があります) –