簡體   English   中英

使用func數組的功能結構

[英]structure of function using func arrays

請....

我正在嘗試使庫像基於struct的lib一樣,我想到達類似“ mats.basic.add(1,1);”之類的東西。

構建時的第一個錯誤是struct中的第一行(兩者都存在),然后是,盡管編輯器在點操作(如add或sub)之后提示我,但下一個錯誤是“未知成員添加,sub

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

typedef uint8_t (*p_fn1)(uint8_t,uint8_t);

uint8_t fn_add(uint8_t num1,uint8_t num2){
    return num1+num2;
}

uint8_t fn_sub(uint8_t num1,uint8_t num2){
    return num1-num2;
}

typedef struct mats {
    p_fn1 add=fn_add;
    p_fn1 sub=fn_sub;
}mats;

void init_mats(mats* t_mats){
    t_mats->add=fn_add;
    t_mats->sub=fn_sub;
}
int main()
{
    mats mats_s;
    init_mats(&mats_s);
    uint8_t c=mats_s.add(1,1);
    printf("%d",c);
    return 0;
}

非常感謝

您在定義結構時嘗試初始化結構成員。 那是無效的語法。

從定義中刪除那些初始化器。

typedef struct mats {
    p_fn1 add;
    p_fn1 sub;
}mats;

如果要使用可以在類型上調用的方法,請使用C ++編寫程序。 它具有該功能; C沒有。

在純C語言中,沒有任何方法不會笨拙地編寫,運行緩慢和/或使用不適當的內存量。 您嘗試使用的特定方式根本不起作用,因為您嘗試在type上設置字段,而不是在該類型的實例上設置字段,但是即使您修復了該問題,仍然會遇到其他問題語言的基本限制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM