Pointers 指向结构的指针
我正在努力学习一个我没有写过的代码 在下面的代码中,定义了一个结构ICB_CMD_uu,然后*ICB_PCMD是指向ICB_CMD_uu的ICB_PCMD指针Pointers 指向结构的指针,pointers,structure,extern,Pointers,Structure,Extern,我正在努力学习一个我没有写过的代码 在下面的代码中,定义了一个结构ICB_CMD_uu,然后*ICB_PCMD是指向ICB_CMD_uu的ICB_PCMD指针 typedef struct ICB_CMD_ { UINT8 u8MsgId; UINT8 u8Addr; UINT8 u8Length; UINT8 u8MainCmd; UINT8 u8SubCmd; UINT8 au8Data[BUFFER_LENGTH-5]; //5
typedef struct ICB_CMD_
{
UINT8 u8MsgId;
UINT8 u8Addr;
UINT8 u8Length;
UINT8 u8MainCmd;
UINT8 u8SubCmd;
UINT8 au8Data[BUFFER_LENGTH-5]; //5: ENQ/ACK/NAK ID #BYTES CRCH CRCL BUFFER_LENGTH=200
}*ICB_PCMD;
那么
EXTERN ICB_PCMD icb_pRxCmd;
EXTERN ICB_PCMD icb_pTxCmd;
下面两行是做什么的
非常感谢。在上面的代码中,
*ICB_PCMD
是指向结构ICB_CMD
类型的指针类型,它尚未初始化
extern
使变量在其他源模块中可见
在此代码中,可以使用两种声明方式:
struct ICB_CMD_*var2代码>
或
ICB_PCMD var3代码>
两个指针:
extern ICB_PCMD ICB_pRxCmd代码>
exterb ICB_PCMD ICB_pTxCmd代码>
是外部的,这意味着它们在其他文件中声明,但现在(使用extern
)可以在当前源模块中访问。“extern”关键字允许您访问在其他源文件中声明的变量
以下是一些关于该主题的有用阅读材料:
堆栈溢出-
堆栈溢出-
谢谢,所以icb_pRxCMd和icb_pTxCmd也是指向结构icb_CMD的指针?如果准确地说,它们是*icb_PCMD
类型的指针,它是指向结构icb_CMD
的指针,请参见我编辑的答案,*icb_PCMD在本例中也是指针的类型。