|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
基本語句 |
| 作者:bobo320 欄目:嵌入式系統(tǒng) |
#define UINT16 unsigned SHORT *((volatile UINT16 *)AM_START_ADDR+ AM_ADDR_UNLOCK1) = AM_DATA_UNLOCK1;其中AM_START_ADDR是基址,AM_ADDR_UNLOCK1是偏移地址,AM_DATA_UNLOCK1是數(shù)據(jù)。 請問:1 第二個'*'是什么意思? 2 volatile在這里有什么作用? 3 (volatile UINT16 *)中為什么要括號? 問題比較低級,請大家?guī)兔,謝謝! |
| 2樓: | >>參與討論 |
| 作者: su_mj000 于 2006/2/5 1:06:00 發(fā)布:
編譯原理 'AM_START_ADDR+ AM_ADDR_UNLOCK1'是個固定數(shù)值(也允許是個變量); 之前的'(volatile UINT16 *)'表示將該數(shù)值定義(轉(zhuǎn)換)為UINT16指針(地址值); 再在之前的'*'即表示對該地址的內(nèi)容進行存取. 編譯對'*((volatile UINT16 *)AM_START_ADDR+ AM_ADDR_UNLOCK1)'的處理 正好是從右至左,而非從左到右. 論壇中有不少關(guān)于C語言以及編譯上的疑問大都由于對編譯原理不清所致. |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |