为什么函数的地址不会变?

数码玩艺 2016-12-16 01:34:41



如果不修改代码(加了一个空行)函数的地址不会变,这是为什么?
又为什么修改代码后,后四位的地址没变?
这到底是为什么?
谢谢
...全文
292 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2016-12-16
  • 打赏
  • 举报
回复
引用 6 楼 zkr33928 的回复:
[quote=引用 4 楼 paschen 的回复:] [quote=引用 2 楼 zkr33928 的回复:] [quote=引用 1 楼 akirya 的回复:] 这个本来就是是不确定事情。
试了很多遍,都只改变前四位,虽然地址不确定,但是这个改变的规律应该确定吧?[/quote] 因为函数与函数之间也会进行对齐[/quote] 不明白,这个对齐是什么意思[/quote] 网上搜索“内存对齐”
paschen 2016-12-16
  • 打赏
  • 举报
回复
引用 5 楼 zkr33928 的回复:
[quote=引用 3 楼 ipqtjmqj 的回复:] 空行编译时就忽略掉了,操作系统不变,编译器不变,编译配置不变,结果就不变 后4位地址没变,你还是一个函数,编译配置相同,当然地址不变了。 你输出的地址是操作系统分配的虚拟地址,并不是物理地址。 一个程序的地址空间分为几个段,text段放函数,data段放全局变量,bss段是未初始化的全局变量
不仅是空行!定义100个变量他也不会变。[/quote] 变量是定义在栈上,而不是代码区,不会影响到函数的地址
小灸舞 版主 2016-12-16
  • 打赏
  • 举报
回复
计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构
  • 打赏
  • 举报
回复
一年管理成富翁,三年市场路路通,十年技术一场空。 ======================================== 孟子曰:劳心者治人,劳力者治于人。
FD_2013 2016-12-16
  • 打赏
  • 举报
回复
因为爱情 管他为啥呢,windows封装这么多层,一层套一层的,为的就是让我们摆脱这种乱七八糟没意义的探索,用得着的都会在编译器窗口里显示出来。 如果实在是闲的难受想研究下,通读下《数字逻辑》->《计算机组成原理》->《操作系统》->《编译原理》, 读完之后顺便怀疑下人生,然后大彻大悟发现自己不适合干程序员,从此转行卖烧饼,年入百万,赢取白富美,走向人生巅峰。 正印了那句老话:一年管理成富翁,三年市场路路通,十年技术一场空。
数码玩艺 2016-12-16
  • 打赏
  • 举报
回复
引用 4 楼 paschen 的回复:
[quote=引用 2 楼 zkr33928 的回复:] [quote=引用 1 楼 akirya 的回复:] 这个本来就是是不确定事情。
试了很多遍,都只改变前四位,虽然地址不确定,但是这个改变的规律应该确定吧?[/quote] 因为函数与函数之间也会进行对齐[/quote] 不明白,这个对齐是什么意思
数码玩艺 2016-12-16
  • 打赏
  • 举报
回复
引用 3 楼 ipqtjmqj 的回复:
空行编译时就忽略掉了,操作系统不变,编译器不变,编译配置不变,结果就不变 后4位地址没变,你还是一个函数,编译配置相同,当然地址不变了。 你输出的地址是操作系统分配的虚拟地址,并不是物理地址。 一个程序的地址空间分为几个段,text段放函数,data段放全局变量,bss段是未初始化的全局变量
不仅是空行!定义100个变量他也不会变。
paschen 2016-12-16
  • 打赏
  • 举报
回复
引用 2 楼 zkr33928 的回复:
[quote=引用 1 楼 akirya 的回复:] 这个本来就是是不确定事情。
试了很多遍,都只改变前四位,虽然地址不确定,但是这个改变的规律应该确定吧?[/quote] 因为函数与函数之间也会进行对齐
ipqtjmqj 2016-12-16
  • 打赏
  • 举报
回复
空行编译时就忽略掉了,操作系统不变,编译器不变,编译配置不变,结果就不变
后4位地址没变,你还是一个函数,编译配置相同,当然地址不变了。

你输出的地址是操作系统分配的虚拟地址,并不是物理地址。
一个程序的地址空间分为几个段,text段放函数,data段放全局变量,bss段是未初始化的全局变量
数码玩艺 2016-12-16
  • 打赏
  • 举报
回复
引用 1 楼 akirya 的回复:
这个本来就是是不确定事情。
试了很多遍,都只改变前四位,虽然地址不确定,但是这个改变的规律应该确定吧?
  • 打赏
  • 举报
回复
这个本来就是是不确定事情。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧