生成很大的可执行文件
2020-05-03 本文已影响0人
罗蓁蓁
当我们想生成很大的可执行文件时,我们应该怎么操作呢?
我们都知道,可执行文件,或者说elf/bin文件中,保存的是代码段和数据段。bbs段在文件中不体现大小,而局部变量也是放在栈上的,在文件中也体现不出大小。
因此,要让elf/bin文件变大,有几种选择:
- 让数据段变大
- 让代码段变大
让代码段变大,不是很好弄,毕竟难道要不停敲代码吗?我又不是键盘侠!那么,就让数据段变大吧!让数据段变大:
写一个很大的全局变量数组
但这要如何实现呢?
int test[1000];
但这样,没有初始化的全局变量会被放到.bss段,因此我们在链接脚本里需要把.bss段也放到.data段才行。但,有没有更简单的方法?
int test[1000] = {666,};
如果像上面这个样子,有时候可行,但很多时候,elf/bin并不会变大。那么,我们可以这样:
int test[1000] = {[0 ... 1000-1] = 666};
这是C语法新特性,它的意思是,对test数组的1000成员分别赋值为666,是不是很简单?也很神奇!
出差必备
买火车票、高铁票、机票,订酒店都打9折的出行工具TRIP,点击注册