Re: [問題] 幾個小問題請教

看板C_and_CPP (C/C++)作者 (艾迪)時間11年前 (2015/04/24 21:29), 編輯推噓1(108)
留言9則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《baldhawk (哈哈)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : C : 問題(Question): 請問ARM 設定 Register問題, 要設定Register 0x2000_0000 的值為 0x12345678 用如下寫法: Typedef struct { UINT32 A; }B; (B *)(0x20000000) -> A = 0x12345678; 應該是把位址0x20000000轉型結構指標"B", 再指向變數"A", 就可以把值存到Register裡面, 一定轉型成B才能設值? 有比較簡單方法嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.232.154 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1429882190.A.4E7.html

04/24 22:08, , 1F
*(UINT32*)(0x20000000) = 0x12345678; ??
04/24 22:08, 1F

04/24 22:08, , 2F
不過話說這種 Code 在 F.W 那裡應該寫成 macro 較佳 ?
04/24 22:08, 2F

04/24 22:09, , 3F
#define SET_ADDR_VAL(ADDR,VAL) *(UINT32*)ADDR = VAL;
04/24 22:09, 3F

04/24 22:11, , 4F
我才發現這篇的回文原來和原主題沒關係 Orz
04/24 22:11, 4F

04/24 22:41, , 5F
不好意思 和原文是沒關係的
04/24 22:41, 5F

04/24 22:44, , 6F
(B *)(0x20000000)->A 和 *(UINT32*)ADDR 相同嗎?
04/24 22:44, 6F

04/24 22:45, , 7F
這邊也搞不太懂
04/24 22:45, 7F

04/25 00:53, , 8F
效果是一樣的。
04/25 00:53, 8F

04/25 18:45, , 9F
precedence是->比type cast高, 這compile會過?
04/25 18:45, 9F
文章代碼(AID): #1LEaLEJd (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1LEaLEJd (C_and_CPP)