*(volatile unsigned *)0x4F000000 的疑问?
*(*)N //先强制类型转换,转换为指针,再对指针进行间接访问
volatile unsigned *ptr;
ptr=(volatile unsigned *)0x4F000000;
对Ptr间接访问:
*Ptr // *(volatile unsigned *)0x4F000000
总结: 把地址0x4F000000进行强制类型转换(volatile unsigned *),然后 (volatile unsigned *)0x4F000000 取这个地址中的内容;
volatile用于防止编译器自动优化,也就是每次取这个地址里的内容时都要到这个地址重新取得,而不是用存在寄存器中的值。