c/c++ 入口函数

来源:互联网 发布:mac系统文件管理 编辑:程序博客网 时间:2024/05/22 01:43
之所以大多数程序的“入口”是 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:
项目"属性页"-->"配置属性"-->"链接器"-->"高级"-->"入口点"
加入你想要的入口函数名.

原创粉丝点击