2015-01-12 32 views
2

我已經經由C,半自助旅遊旅行社霧凇,transfering

定義的結構

typedef struct { 
unsigned short a; 
unsigned short b; 
} my_struct; 

發送節點創建它使用

my_struct my; 
packetbuf_copyfrom((void *)&my, sizeof(data_struct)); 

接收節點訪問所述數據的結構 並傳送一個結構

my_struct *my; 
my = packetbuf_dataptr(); 

到目前爲止好。通過嘗試訪問結構中的成員a或b時,會出現以下錯誤:「錯誤:請求成員'a',但不是結構或聯合。」 如果我傳遞一個簡單的字符串並訪問它,一切都很好。

我知道這是一個基本的初學者問題,但如果你能幫助我,我會很高興。

+2

使用'的printf( 「%虎」,我的 - > A);'爲'my_struct.a'是'無符號short',不無符號' int','my'是'my_struct *',而不是'my_struct'。 – EOF

+0

@EOF:%hu不被msp430-libc(一個16位系統)支持。只需%u就好了。 – kfx

+0

你對我的 - >一部分絕對正確。它現在有效。非常感謝! – myveryown

回答

2

要訪問結構的成員,通過結構指針我們必須使用箭頭運算符 - >(由連字符和大於符號形成)。

要訪問您的會員一個使用

printf("%u", my->a); 
or 
printf("%u", (*my).a);