我在记事本中写了这个,然后用lcc-win
编译它,使用命令lc hello.c
#include <stdio.h>
int main(void)
{
printf("Hello World\n");
return 0;
}
得到的exe为100 KB。对于只打印Hello World
的程序来说似乎有点大。这是正常的吗?我可以减小尺寸吗?这些天100 KB并不是一个真正的问题,但它似乎仍然有点大。如果我写的每个C代码都是100 KB的exe,那就太糟糕了。
答案 0 :(得分:0)
1-每当您使用include <>
标记时,您都会与c库建立链接并将其加载到您的程序中。
这也是为什么重要的是只包含在实际需要库函数的文件中。
2-另一方面,您生成的二进制文件总是充满重要信息(参见:libelf
或ASM
),标题,如果您想编程,需要在此处执行的步骤运行得很好。这确实需要空间。
答案 1 :(得分:0)
这是一个非常简单的问题,lcc-win发生的事情与C Compiler Digital Mars相同,他没有将exe链接到包含函数printf等的dll,函数与EXE链接在一起,所以没有requerindo你的计算机有DLL。
看,我创建了一个简单的Hello World EXE,我在Hex Editor中打开了hin .... printf函数存储在msvcrt.dll中,并且exe在导入部分没有这个dll ...
而且,你可以在另一张图片中找到源定义:
使用此样式的函数定义更快,然后进行dll调用....