請的....結構中使用函數func陣列
我試圖讓其目的是像一個lib基於結構 我想達到像「庫mats.basic.add(1,1) ;」
當構建是內部結構(兩者)第一行,然後 是,雖然編輯器,如添加或子 下一個錯誤是「UKNOWN成員加點動作後暗示我第一個錯誤,子
#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;
}
非常感謝
'p_fn1 add = fn_add; p_fn1 sub = fn_sub;'無效。它不能在結構定義中分配。試一下'typedef struct mats {p> 0; p_fn1 add; p_fn1 sub; }地墊;'。另外'fn_sum'輸入錯誤爲'fn_sub' – BLUEPIXY
謝謝你是對的,所以我不能在結構中指定func的地址,它現在可以工作:) –
將'&d'改爲'%d'將會改善結果,定義 –