嵌入式开发者社区
标题: 纯C的问题 ,结构体的 [打印本页]
作者: 新手上路 时间: 2016-6-7 09:13
标题: 纯C的问题 ,结构体的
EMIFANANDInit(NandInfo_t *nandInfo)
{
nandTimingInfo = (EMIFANANDTimingInfo_t *) nandInfo->hNandCtrlInfo->hNandTimingInfo;
}
这句话怎么理解呢?谁能给小弟详细解释一下,谢谢
下面是对应的结构体
3 n# y& @9 }- f" ^9 C8 K
! o7 A3 M0 ^$ }+ @7 u
+ E7 E+ M J% n$ ?! f& R2 [3 t
typedef struct _EMIFA_NAND_TIMING_INFO_
{unsigned int writeSetup;
unsigned int writeStrobe;
unsigned int writeHold;
unsigned int readSetup;
unsigned int readStrobe;
unsigned int readHold;
unsigned int turnAround;
}
EMIFANANDTimingInfo_t;
typedef struct _NAND_INFO_
{
unsigned int dataRegAddr;
/* ADDR Register address */
unsigned int addrRegAddr;
/* CMD Register address */
unsigned int cmdRegAddr;
/* Pointer to Memory Controller Structure */
struct _NAND_CTRL_INFO_ *hNandCtrlInfo;
/* Pointer to ECC Structure */
struct _NAND_ECC_INFO_ *hNandEccInfo;
/* Pointer to DMA Structure */
struct _NAND_DMA_INFO_ *hNandDmaInfo;
}
NandInfo_t;
% f+ y1 N I, [. a9 j
typedef struct _NAND_CTRL_INFO_
{
unsigned int (*WaitPinStatusGet)(NandInfo_t *nandInfo);
/* Timing info for the device and the controller */
void *hNandTimingInfo;
/* Base address of the controller */
unsigned int baseAddr;
/* ECC supported by the controller */
unsigned int eccSupported;
/* Wait pin where NAND dev R/B pin is connected */
unsigned int chipSelectBaseAddr[NAND_MAX_CHIP_SELECTS];
E, c d* o) m/ T1 ~; Q
}
NandCtrlInfo_t;
; i( T- g) z% L+ N: L* g* {* m
: ?9 p* A5 ^% k, S
作者: Jackindata 时间: 2016-6-8 16:31
提取结构体中的 hNandTimingInfo 到一个临时变量,结构体中的这个值结构体声明里有注释解释了。( b: y" X( ~/ p4 ~+ h1 E( s
9 A0 E5 b+ J3 C% ]; |& o6 ^
其实不是很确定你的疑问是什么。
作者: 新手上路 时间: 2016-6-8 16:37
Jackindata 发表于 2016-6-8 16:31$ C6 w4 X9 m! r+ I- W9 P/ c
提取结构体中的 hNandTimingInfo 到一个临时变量,结构体中的这个值结构体声明里有注释解释了。5 |2 r( I+ ~8 k- ~' ~- L' v" d1 N, y, B
$ V- j1 R4 A8 {3 S/ m
其实不是 ...
! e% f9 Z9 h! x7 I" u( Q您能给我解释一下 赋值运行的过程吗, 越详细越好 ,谢谢
作者: Jackindata 时间: 2016-6-8 17:11
(EMIFANANDTimingInfo_t *) nandInfo->hNandCtrlInfo->hNandTimingInfo;
7 w" h' E6 r) ^( l+ I r
这里箭头符号用于结构体指针访问结构体成员,而 hNandCtrlInfo 也是一个结构体指针,可以继续访问其结构体成员 hNandTimingInfo。. x7 x' _# V+ Y' P
) m4 p- n0 T+ h# q
这个语句也可以这样写:: Q( l3 F+ D0 S6 C# P) q
- ' u# g8 A8 K! M5 o1 P
- struct _NAND_CTRL_INFO_ *val1 = (EMIFANANDTimingInfo_t *) nandInfo->hNandCtrlInfo;
! M, P6 p! D% M$ j1 d - void *val2 = val1->hNandTimingInfo;
复制代码
作者: 希望缄默 时间: 2016-6-11 11:40
4 d' b. u' w2 s( R/ t
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) |
Powered by Discuz! X3.4 |