定义多个函数,函数被分配到的空间是延续的吗

定义多个函数,函数被分配到的空间是连续的吗?
例如
void a1(...)
{
   ....
}
void a2(...)
{
   ....
}
.
.
.
a1,a2,...aN分配的空间是连续的吗?
下面是我的遐想...C语言为什么不做一个函数数组,就像数组一样为多个定义的函数分配连续的空间。。(不喜勿喷)
------解决思路----------------------
可以试一下emacs中的GDB调试器 。。这个可以让你查看程序机器级别的运行状态。
我刚刚用GDB看了一下,地址不是连续的。
po图:
定义多个函数,函数被分配到的空间是延续的吗
4和7是两个函数的起始地址
函数体:
void f1(){
  return;
}
void f2(){
 return;
}
关于函数数组 问题,你自己google下
不过 我也谈一下我的理解,C中的函数名本身是一个地址,如果有函数数组,那怎么函数体中的代码怎么办?我的意思是函数名本身应该是函数执行的起点,应该是做不到函数地址递增的。额,,个人YY,,纯属TX
------解决思路----------------------
数组是一系列线性存储的相同类型元素的集合。无论数组中存储的是地址还是数值,它的大小都是确定的。如果想做个函数数组,那存储的元素就是地址了,如果想让它们连续,就必须知道每个函数的大小,即知道地址又知道大小,这样就可以使数组连续了,不过此时数组的类型最好是结构体了。如果这样分配的话,还有一个问题,如果你的函数足够多,又足够大,内存中是否存在这么一大块空间让你来存储连续函数,这样也不利于对内存的管理。总体来说看每个编译器的取舍了。
------解决思路----------------------
说穿了,函数不过是一些标号
函数调用,和函数返回,都是一种跳转
一个函数块 到底有多大,
和函数编译以后的指令
总长度有关系
至于函数会不会连续,简单的策略是会的
但是实际上,编译器因为种种原因,
并不一定会采取这种简单的办法.
高级语言的函数代码,
长度是不确定的
要在 C,C++中,通过标准C,C++行为,
直接生成,这种代码性质的数组,是不可能做到的
不过函数指针(函数地址)的长度,
很多时候是一致的,可以放到数组中