抽象题: 我在 C 中有一些代码。 编译后可执行文件有 604 KB。 我希望它更大,比如 100 MB。
如何实现?
我可以声明一个字符串来增加二进制文件的大小,但是有没有更具扩展性的解决方案。也就是说,我想在不将源代码增加 N 字节的情况下将编译后的大小增加 N 字节。
char* filler = "filler"; // increases compiled size only by few bytes
用例: 我正在开发固件,并测试远程固件升级功能。我想看看当固件又大又重时它会如何表现。
最佳答案
这会在使用 gcc 编译时创建一个 100MB 的可执行文件:
#include <stdio.h>
#define SIZE 100000000
char dummy[SIZE] = {'a'};
int main(void){
dummy[SIZE-1] = '\n';
if(dummy[0] == 'a')printf("Hello, bloated world");
return 0;
}
通过在 main
之外定义数组,您不会炸毁堆栈。通过使用数组,gcc 不会优化它。
关于c - 增加二进制可执行文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43520681/