想让程序跳转到绝对地址0x100000处执行,该如何做?
2017-08-10 11:36
225 查看
嵌入式笔试题:想让程序跳转到绝对地址0x100000处执行,该如何做?
网上看到有如下答案:
((void()(void))0x100000)();
经过在VC++6.0和Linux gcc4.4.3下测试,均不能通过编译。
VC++6.0报错:error C2100: illegal indirection
GCC报错:error: void value not ignored as it ought to be
应该是怎么写呢?
经过测试,有两种方法:
答案1. ((void()(void))0x100000)();
答案2. ((void(*)(void))0x100000)();
仔细观察,第一种写法只是第一个的位置不同,第二种写法少了一个,但是都能正确编译通过,且正确执行。
为什么会有这两种答案呢?查阅资料后发现,与历史原因有关……
先来看看如下例子:
例一:
[cpp] view plain copy print?
网上看到有如下答案:
((void()(void))0x100000)();
经过在VC++6.0和Linux gcc4.4.3下测试,均不能通过编译。
VC++6.0报错:error C2100: illegal indirection
GCC报错:error: void value not ignored as it ought to be
应该是怎么写呢?
经过测试,有两种方法:
答案1. ((void()(void))0x100000)();
答案2. ((void(*)(void))0x100000)();
仔细观察,第一种写法只是第一个的位置不同,第二种写法少了一个,但是都能正确编译通过,且正确执行。
为什么会有这两种答案呢?查阅资料后发现,与历史原因有关……
先来看看如下例子:
例一:
[cpp] view plain copy print?
include
include
相关文章推荐
- C语言实现程序跳转到绝对地址0x100000处执行
- <详解>C语言实现程序跳转到绝对地址0x100000处执行
- 让程序跳转到某绝对地址执行
- 让程序跳转到绝对地址执行
- 那么要是想让程序跳转到绝对地址是0x100000去执行,应该怎么
- 利用函数将程序跳转到固定地址执行
- C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
- ARM 如何实现绝对地址的跳转
- C语言实现程序跳转到绝对地址0x100000处执行
- 如何使PHP程序执行页面跳转时传递大量参数
- C语言使用函数指针跳转到程序固定地址(0x8000)执行程序的方法
- C语言函数指针跳转到程序固定地址(0x8000)执行程序的方法
- <详解>C语言实现程序跳转到绝对地址0x100000处执行
- C语言中将绝对地址转换为函数指针以及跳转到内存指定位置处执行的技巧
- C语言实现程序跳转到绝对地址0x100000处执行
- 用c语言跳转到绝对地址0x10000执行
- Linux内核如何装载和启动一个可执行程序
- Linux内核如何装载和启动一个可执行程序
- 6.Linux内核如何装载和启动一个可执行程序
- 如何调试程序时 从第一条指令开始执行