typedef struct
{
uint8_t u8Id;
int8_t i8PosOld;
int8_t i8Pos;
uint8_t u8Direction;
uint8_t u8Collision; //3?í?
uint8_t u8FSM_State;
uint32_t u32Step;
uint32_t u32Tim;
uint32_t u32Speed;
int32_t (*Action)(void *);
} tsLedPoint;
tsLedPoint sLedPoint[8];
typedef struct
{
uint32_t u32NumOfOBJ;
tsLedPoint *psLedPoint;
void (*Action)(void *);
} tsArbiter;
void ArbiterAction(tsArbiter *psArbiter)
{
uint32_t i;
for( i = 0; i < psArbiter->u32NumOfOBJ; i++ )
{
if(psArbiter->psLedPoint[i].u32Step!= 0)
{
psArbiter->psLedPoint[i].u32Tim++;
}
}
tsArbiter sArbiter = {
.u32NumOfOBJ = 2,
.psLedPoint = sLedPoint,
.Action = (void (*)(void *))ArbiterAction
};
最上面三個是結構體變數
就是對于上面.Action的賦值卡不太懂
函式指標和指標函式的概念我是理解的
但是這個堆在一起我看不太懂了
小白請教大家
uj5u.com熱心網友回復:
把函式ArbiterAction()的地址賦給sArbiter .Actionuj5u.com熱心網友回復:
強制轉換為一個函式指標,即1樓說的把函式ArbiterAction()的地址賦給sArbiter .Action。void (*) ()不含引數的
void(*)(int,long)含引數的
void(*)(void*)含指標引數的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/40888.html
標籤:單片機/工控
下一篇:想問下各位大佬有學習LDPC的嗎
