社区
C语言
帖子详情
如何从指定地址开始执行?
mengjfu
2009-05-18 09:18:55
请教
如何从指定地址开始执行,下面0x0001为地址,
char *p = 0x0000 能用c语言实现吗?
...全文
200
6
打赏
收藏
如何从指定地址开始执行?
请教 如何从指定地址开始执行,下面0x0001为地址, char *p = 0x0000 能用c语言实现吗?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dhc_fy
2009-05-20
打赏
举报
回复
( (void (*)(void) )0x0001)()
(void (*)(void): 函数指针类型
(void (*)(void) )0x0001 将某个地址强制转换为函数指针
( (void (*)(void) )0x0001)() 产生函数调用
不知道是不是你要的结果。
mengjfu
2009-05-19
打赏
举报
回复
[Quote=引用 4 楼 dhc_fy 的回复:]
强制转换成函数指针调用。
((void (*)(void))0x0001)()
[/Quote]
能详细一点吗?谢谢1
dhc_fy
2009-05-18
打赏
举报
回复
强制转换成函数指针调用。
((void (*)(void))0x0001)()
kevin0716
2009-05-18
打赏
举报
回复
直接赋值是不行的
它会给你提示错误 不能直接将const int赋给char*
方法:
char *p=(char*)0x001;就可以了
shexinwei
2009-05-18
打赏
举报
回复
不能,C语言里面数据段的地址,代码段地址,堆栈段地址都是编译器确定的
你这种做法只能用于汇编,此时各种段地址都是你自己确定的;
FCARM
2009-05-18
打赏
举报
回复
单片机就可以,把值赋给PC就得了
C语言程序必须从main函数开始吗?main函数
执行
完后还
执行
其他语句吗?
这是在面试中被问到的一个问题,回答了是。这问题第一感觉答案就是否定的,一时也没想出来理由只能回答了是。当时太紧张了,其实回想一下汇编语言就该想到程序的入口
地址
是可以
指定
的,c语言编译器默认以main作为入口
地址
。网上查阅后,发现了 __attribute__ 这个关键字,它可以设置函数属性,变量属性,类型属性。参考:http://www.cnblogs.com/Anker/p/3462363.ht...
【剖析】为什么c语言从main函数开始
执行
程序
今天学习c++,突然想到为什么程序要从main函数开始
执行
。 也忘记老师有没有讲过,甚至有些遗忘。 担心之余开始前往csdn进行查询学习,终于在一个大神博客学习到了,现在分享给大家。 main只是开发工具所规定的一个特殊函数名称而已。它既不是程序的入口,也不是必须要有的函数。 程序的入口点记录在可
执行
文件中的一个数据,该数据标明程序从哪个位置开始
执行
,这个数据是连接程序的时候由link.exe确定的,可以把程序的入口点
指定
为任意函数,甚至可以自己编辑可
执行
文件修改程序的入口点。在默认情况下,link.e
为什么很多主程序都设置
地址
从0030H开始运行?
Q:很多程序都是这种结构,如, ORG 0000HAJMP MAINORG 0030H...请问ORG何用,为什么要设置ORG 0030H?A:ORG是个用于定位的伪指令。简单的说就是把从这句话开始直到下一个ORG指令或者END指令前的程序语句都顺序放在它
指定
的
地址
里。比如说你的程序里ORG只管了一个语句(AJMP MAIN),则从0000h这个
地址
开始放语句。放多少,看下面有几条语句(直到org或end 指令为止)。同样ORG 0030H是把它后面的所有到下一个ORG或END命令前的所有代码都顺序放
c语言中总是从main函数开始,C语言总是从main函数开始
执行
吗
//--------------------------------------------------------本文目录结构|-提出问题|-解决问题|-推荐文章|-作业//--------------------------------------------------------一、提出问题①C程序main函数是必要的吗?②程序从main函数开始吗?③在main函数结束吗?二、解决问题ma...
STM32如何跳转到
指定
地址
执行
程序
跳转代码 void boot_jump_to_run(uint32_t addr) { uint32_t jmp_addr; /* Check if user code is programmed starting from address addr */ if (((*(uint32_t *)addr) & 0x2FFE0000) == 0x20000000) { /* Jump to user application */ jmp_add
C语言
70,026
社区成员
243,244
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章