您需要創建一個全局數組,並顯式初始化所有元素。這些元素應該是隨機的,否則編譯器可能會優化編譯代碼中的初始化程序列表。
首先,您需要一個單獨的程序來生成你的陣列:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
int len = 100000000;
int i;
srand(getpid());
printf("unsigned char buf[%d] = {\n", len);
for (i=0;i<len;i++) {
printf(" %hhu,", rand() & 0xff);
if (i%16==15) printf("\n");
}
printf("};\n\n");
return 0;
}
運行這和輸出重定向到一個文件:
./array_generator > array.c
然後你會得到array.c這看起來是像這樣:
unsigned char buf[1000000] = {
247, 223, 30, 51, 46, 247, 133, 136, 254, 225, 82, 135, 68, 176, 240, 7,
29, 245, 104, 203, 230, 83, 127, 189, 37, 5, 168, 105, 134, 9, 229, 125,
232, 3, 176, 23, 251, 53, 159, 249, 22, 241, 128, 90, 161, 112, 97, 191,
101, 202, 138, 75, 29, 10, 9, 66, 15, 177, 171, 149, 186, 145, 18, 163,
...
};
然後,您將其包含在您的主要來源中:
#include "array.c"
「scalable」是什麼意思? –
*「抽象問題」* - 不,你不能這麼簡單,我很好奇。你爲什麼真的在問? :) – StoryTeller
就像'echo abcd >> myprogram.exe'一個選項? –