TI中文支持网
TI专业的中文技术问题搜集分享网站

有关结构体代码编程的问题

问题:在学习InstaSPIN – FOC 时发现, proj_lab01b

   有的结构体

typedef struct _CTRL_Obj_
{
……
} CTRL_Obj;
typedef struct _CTRL_Obj_ *CTRL_Handle;这个是一样的,能够理解

但是有的结构体

typedef struct _DATALOG_OBJ_
{ int32_t *iptr[DATA_LOG_BUFF_NUM];

bool Flag_EnableLogData; 

bool Flag_EnableLogOneShot; 
int16_t cntr; 
int16_t size; 
} DATALOG_Obj;

typedef struct _DATALOG_Obj_ *DATALOG_Handle;

标红的不一样,但是编译能够通过,这个如何解释,而且_DATALOG_Obj_也搜索不到

luosf:如果自己编写结构体,肯定是第一种,编译才能通过
上面的问题导致一个问题
inline _iq CTRL_getVq_out_pu(CTRL_Handle handle)
{CTRL_Obj *obj = (CTRL_Obj *)handle;
return(obj->Vdq_out.value[1]);
}替换为return(handle->Vdq_out.value[1]);也是没有问题的,obj和handle都是结构体指针
但是
DATALOG_Handle DATALOG_init(void *pMemory,const size_t numBytes)
{DATALOG_Handle handle;
if(numBytes < sizeof(DATALOG_Obj))return((DATALOG_Handle)NULL);
// assign the handlehandle = (DATALOG_Handle)pMemory;
DATALOG_Obj *obj=(DATALOG_Obj *)handle;
obj->cntr = 0;obj->size = DATA_LOG_BUFF_SIZE;
return(handle);
} // end of DATALOG_init() function
这里的obj改为handle 编译就出错

问题:在学习InstaSPIN – FOC 时发现, proj_lab01b

   有的结构体

typedef struct _CTRL_Obj_
{
……
} CTRL_Obj;
typedef struct _CTRL_Obj_ *CTRL_Handle;这个是一样的,能够理解

但是有的结构体

typedef struct _DATALOG_OBJ_
{ int32_t *iptr[DATA_LOG_BUFF_NUM];

bool Flag_EnableLogData; 

bool Flag_EnableLogOneShot; 
int16_t cntr; 
int16_t size; 
} DATALOG_Obj;

typedef struct _DATALOG_Obj_ *DATALOG_Handle;

标红的不一样,但是编译能够通过,这个如何解释,而且_DATALOG_Obj_也搜索不到

luosf:

回复 luosf:

说错了,与_无关

赞(0)
未经允许不得转载:TI中文支持网 » 有关结构体代码编程的问题
分享到: 更多 (0)