| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2654 人关注过本帖
标题:用有关CRT方面的知识,写一个C,不以Main为入口~
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
收藏
已结贴  问题点数:100 回复次数:11 
用有关CRT方面的知识,写一个C,不以Main为入口~
如题,被问倒了,不知道有没有大神能实现~
搜索更多相关主题的帖子: CRT 知识 Main 
2018-06-28 17:01
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:50 
接口函数本来就可以修改
程序代码:
#include <stdio.h>
#include <stdlib.h>
void test()
{
        printf("hello\n");
        exit(0); 
}
gcc test.c -nostartfiles -etest -o test



[此贴子已经被作者于2018-6-28 17:40编辑过]

2018-06-28 17:38
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 2楼 烟雨晨曦


就是这样~刚刚了解了,想不到就这么简单~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-06-28 17:59
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
参考了~

http://www.baidu.com/link?url=deQOhC_P2pqUhi-TSWQjNSYyXB--cHH09Zhkk4Hvy0Q2VzWlEJRK9vQLKrjWRaSm91CQPOWyFRV7_WXAhRudJ92ERx0Pcg5pPWSodwZP2wC&wd=&eqid=864f970d00022010000000055b34ab1a

https://blog.

对CRT有兴趣的可以看看

http://

~



[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-06-28 18:13
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:50 
    C程序只是源代码,具体是否需要 main 取决于您要编译成什么样的可执行文件。在Windows平台上,这包括:是直接可执行文件(exe)还是动态连接库(dll,ocx...),是控制台程序(像DOS窗口的那种)还是GUI程序(像Internet Explorer那种),是 unicdoe (wmain) 还是 MBCS (main),是否使用了标准C语言运行时(C runtime)
    编译程序时,入口点是可以通过编译器指定的,如果你不指定,它的默认值是调用 C runtime 的入口点,而不是 main,C runtime 的入口函数执行完它自己的工作后会调用你的 main,所以是 C runtime 要求你的程序必须写 main。你也可以通过参数告诉编译器直接拿你的任何一个函数作为入口点,这样程序启动后第一个被执行的就不再是 main 了,因为连 C runtime 都没机会执行了。不过这样一来很多 C 标准函数也不能用了,因为它们需要 C runtime 的入口函数为它们做一些初始化工作。
2018-06-28 21:04
星泪成寒
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:6
帖 子:77
专家分:549
注 册:2013-5-19
收藏
得分:0 
竟然还有这种骚操作, 问题是有什么具体应用的地方, 还是只是了解一下gcc的编译链接过程
2018-06-29 15:27
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 6楼 星泪成寒
这个感觉可以引申出很多东西,说不定还可以和汇编拉上关系,总之这不是了解gcc这么简单,而是对编译器的工作原理的理解

至于具体应用嘛……只能说这是基础~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-06-29 17:21
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
看了这个
http://blog.
https://blog.
2018-06-30 20:07
自学的数学
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:46
帖 子:967
专家分:4146
注 册:2017-11-15
收藏
得分:0 
回复 7楼 九转星河
这里,我突然想到了一个问题,是一个很好笑的小孩常问的问题,那就是:先有鸡,还是先有鸡蛋?
大家都知道c语言编译器是一种软件,它是用来检测我们编写的c语言是否正确的。那么我想问的是:这编译器是用c之类的语言来编写的吗,就好比我们写c语言代码一样来编写编译器的,也就是说是先有c语言,还是先有c语言的编译器。

[此贴子已经被作者于2018-6-30 23:45编辑过]

2018-06-30 23:40
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
回复 9楼 自学的数学
之前还有用纸带打孔机编程(二进制编程)
2018-07-01 04:32
快速回复:用有关CRT方面的知识,写一个C,不以Main为入口~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026978 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved