c/c++ 入口函数

之所以大多数程序的“入口”是 main,是因为连接器缺省会连接一个叫 crt0.o 或者 crt0.lib 之类的库,这个库才是一个程序真正的入口,这个真正的入口作了一段初始化之后将控制权交给 main。大多数情况下用户程序不会自己初始化这些东西,所以缺省连接这个库。 


如果你自己完成这部分初始化,完全可以抛弃 main。 


main 不是程序的入口,只不过是一个普通的符号而已。
以前有个帖子是关于如何让valgrind支持线程 
隐约记得里头用到了一个gcc特有的宏 
该宏可以使一个函数在main之前就执行
#include <stdio.h>
#include <string.h>
void foo() __attribute__ ((constructor));
int main()
{
return 0;
}
void foo()
{
printf("Hello from %s\n", __FUNCTION__);
}






C++修改入口函数名Main的方法
方法1
// 通过下面这句话将入口函数改成fn.  
#pragma comment(linker, "/entry:fn")  
#include <iostream>  
  
int fn(void)  
{  
    std::cout << "Hello world!" << std::endl;  
    return 0;  
}  


方法2:
项目"属性页"-->"配置属性"-->"链接器"-->"高级"-->"入口点"
加入你想要的入口函数名.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值