标题:
((void(code *)(void))0x0000)();这句是什么意思?怎么理解的?
[打印本页]
作者:
Listen丶51
时间:
2018-2-2 15:58
标题:
((void(code *)(void))0x0000)();这句是什么意思?怎么理解的?
((void(code *)(void))0x0000)();这句是什么意思?怎么理解的?
作者:
web11234
时间:
2018-2-3 04:37
这是什么呀 看着像函数指针 又不像
作者:
无线电菜虫
时间:
2018-2-3 09:24
首先去括号得到(void(code *)(void))0x0000,这句话很明显是把0x0000强制类型转换成某个东西。
然后再去括号得到void(code *)(void),这句话的意思是一个函数指针类型,无参数,无返回值。
整体的意思是把0x0000当做一个无参数无返回值的函数指针,再对这个函数进行调用。
其作用就是调用0x0000位置处存放的某个函数代码
作者:
Listen丶51
时间:
2018-2-5 08:41
无线电菜虫 发表于 2018-2-3 09:24
首先去括号得到(void(code *)(void))0x0000,这句话很明显是把0x0000强制类型转换成某个东西。
然后再去括 ...
嗯,执行这个可以回到程序一开始的位置,但是我看不明白这句话的意思
作者:
wacke
时间:
2018-2-16 21:47
把0x0000地址强行转换成函数指针,并执行。
对于51,0x0000放的是复位中断向量。就是单片机上电后最开始执行的代码。
你的这个指令相当于MCU重新开始执行。
作者:
15156082645
时间:
2019-7-24 13:27
mcu重启的
作者:
smarttran
时间:
2019-7-24 16:27
这个语句的出处应该是STC芯片里面参考代码,用于读取芯片ID号的。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1