[問題] 請問Keil c 8051 轉型問題

作者: m9021200 (小妞)   2013-11-28 10:37:06
請問一下用keil c 編輯8051遇到轉型問題
unsigned char g_test xdata _at_ 0x5000;
void func(void)
{
unsigned long testaddr = 0;
testaddr = &g_test;
}
刻意把16bit的位址給32bit的testaddr,
期望testaddr = 0x00005000
結果testaddr = 0x00015000
請問一下為什麼第17bit會是1?
作者: ruemann (路人甲)   2012-01-28 12:55:00
memory type是xdata就會是0x01 可以去查c51.pdf的第六章KEILC的generic pointer分3byte,xdata=0x01, code=0xFF所以你如果用CODE去宣告的話,得到的值會是0X00FF5000

Links booklink

Contact Us: admin [ a t ] ucptt.com