重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
如果所有函数都在同一个.c文件中。只需要在文件开始的地方定义变量就可以了。
成都创新互联公司是一家集网站建设,未央企业网站建设,未央品牌网站建设,网站定制,未央网站建设报价,网络营销,网络优化,未央网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
....
int g_test;
main()
{
....
}
fun1()
{
....
}
fun2()
{
....
}
如果是要在多个.c文件中的所有函数使用同一个变量。
可以用 extern声明。
file.c
int g_int;
main()
{
。。。。。
}
对于工程中的其他文件,想访问这个全局变量可以用
extern int g_int ;声明
这样就可以用了
可以把常量定义在一个头文件中,需要用到的.cpp文件调用这个.h文件就行。你试试,记得上学时这么做过。
C语言中一个项目只能有一个main函数,你这属于两个项目,就算都运行起来了,也是不同的进程,进程是资源分配的基本单位,也就是说,两个进程拥有不同的资源,不可能共享一个变量的。
看你的执行顺序应该是分别执行两个 .c 文件。就是两个独立的进程。每个进程有相互独立的虚拟地址空间。你所得到的40059c是另一个进程的函数地址。 在exploit中的40059这个地址是非法使用的。要想在一个进程中使用另一个进程的函数,就必须要用进程间通信。如共享内存,注册函数,共用此函数。
看你的意图是想要在一个文件中利用函数指针调用别的文件中的函数。如果说你只是想要熟悉一下函数指针,那么这种方法是不可取的。因为函数在定义是并不分配存储空间,在调用的时候在栈中分配存储空间,返回时释放。
要想用数值强转成函数地址。这个函数的地址就必须不能改变。那么就需要将函数声明为静态函数。这样麻烦又来了,静态函数是文件内部使用,外部不能引用。所以,你这种做法是不可取的。