struct nuc900_txbd {
unsigned int Mode;
unsigned int Buffer;
unsigned int TxStateCount;
unsigned int Next;
};
struct tran_pdesc {
struct nuc900_txbd desclist[TX_DESC_SIZE];
unsigned char tran_buf[TX_DESC_SIZE][MAX_TBUFF_SZ];
};
struct tran_pdesc tdesc;后:
如:unsigned char *buffer = tdesc.tran_buf[cur_tx];没错,而 unsigned char *buffer = &tdesc.tran_buf[cur_tx];就有错!
提示:
原因:因为 tdesc.tran_buf表示二维数组的地址,而buffer表示一维的地址,而tdesc.tran_buf[cur_tx]正好表示一维的地址;或者可以写成:
buffer = &tdesc.tran_buf[cur_tx][0];编译也没错!
正确写法总结:
unsigned char *buffer = &tdesc.tran_buf[cur_tx][0];
unsigned char *buffer = tdesc.tran_buf[cur_tx];
unsigned char *buffer = *tdesc.tran_buf;
struct nuc900_txbd *txbd = &tdesc.desclist[cur_tx];
*txbd = tdesc.desclist[cur_tx];
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。