设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
C\C++
›
用 gcc 怎么样定义一个函数先于 main 函数运行? ...
1
2
/ 2 页
下一页
返回列表
查看:
2183
|
回复:
12
用 gcc 怎么样定义一个函数先于 main 函数运行?
[复制链接]
rubble_stone
rubble_stone
当前离线
积分
74
IP卡
狗仔卡
发表于 2006-1-5 13:31:12
|
显示全部楼层
|
阅读模式
在 borland c 中,有一个功能,就是在纯C语言的程序中,可以定义一个函数先于 main 函数运行,以执行一些特殊的初始化。现在需要把这样的程序移植到 Linux 中,怎么样实面这样的功能呢?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
mingfal
mingfal
当前离线
积分
190
IP卡
狗仔卡
发表于 2006-1-5 13:45:32
|
显示全部楼层
把这个函数放到main的第一句不就得了。
回复
支持
反对
使用道具
举报
显身卡
rubble_stone
rubble_stone
当前离线
积分
74
IP卡
狗仔卡
楼主
|
发表于 2006-1-5 14:52:38
|
显示全部楼层
找到方法了,Here:
http://gcc.gnu.org/onlinedocs/gc ... Function-Attributes
定义函数属性。示例如下:
#include <stdio.h>
void ini(void) __attribute__ ((constructor));
void ini(void) {
printf("before main:%d\n", 1024);
exit(1);
}
int main(void) {
puts("here is in main");
return 0;
}
回复
支持
反对
使用道具
举报
显身卡
rubble_stone
rubble_stone
当前离线
积分
74
IP卡
狗仔卡
楼主
|
发表于 2006-1-5 14:53:36
|
显示全部楼层
gcc 是很伟大的,只要你去研究。
回复
支持
反对
使用道具
举报
显身卡
JBug
JBug
当前离线
积分
358
IP卡
狗仔卡
发表于 2006-1-6 12:21:18
|
显示全部楼层
void ini(void) 不能用exit(1),否则它不会执行main。
回复
支持
反对
使用道具
举报
显身卡
wm2506
wm2506
当前离线
积分
7
IP卡
狗仔卡
发表于 2006-1-17 19:58:12
|
显示全部楼层
开了一下眼界
回复
支持
反对
使用道具
举报
显身卡
Linux_Lyb
Linux_Lyb
当前离线
积分
519
IP卡
狗仔卡
发表于 2006-1-18 09:52:27
|
显示全部楼层
我倒是想知道先于main执行的原因和应用。
回复
支持
反对
使用道具
举报
显身卡
lpsir
lpsir
当前离线
积分
149
IP卡
狗仔卡
发表于 2006-1-18 10:44:58
|
显示全部楼层
能说一下有什么用处吧
要是单单初使化的话
在main开始的时候也可以啊
更牛的用处 还请指教
回复
支持
反对
使用道具
举报
显身卡
marvel
marvel
当前离线
积分
489
IP卡
狗仔卡
发表于 2006-1-21 20:45:45
|
显示全部楼层
同意 rubble_stone 的,见
http://www.xfocus.net/articles/200109/260.html
中的”扩展的GCC特性“
回复
支持
反对
使用道具
举报
显身卡
ywchen2000
ywchen2000
当前离线
积分
501
IP卡
狗仔卡
发表于 2006-1-21 21:04:57
|
显示全部楼层
对呀,往那而用乐
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
/ 2 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Java 程序设计开发讨论
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表