C++ 메타 프로그래밍에서 영감을 얻은 저는 C 프로그램에서 큰 C 소스 코드를 생성한다고 생각했습니다. "최대"변수를 원하는 함수의 수만큼 변경하십시오. 이 코드를 컴파일하고 실행하면 largefile.c
이라는 C 프로그램이 생성됩니다. 최적화가 해제 된 상태에서이 프로그램을 컴파일하십시오. 생성 된 printfs도 제거하는 것이 좋을지도 모르겠다. 행운을 빕니다! 대신 C의 조립 될 수있는 경우
#include <stdio.h>
void writefunc(FILE *fp, int i)
{
fprintf(fp, "void f%d()\n{\n\tprintf(\"%d\\n\");\n\tf%d();\n}\n", i, i, i+1);
}
int main(int argc, char** argv)
{
FILE *fp = fopen("largecode.c", "w");
int i;
int max = 100;
fprintf(fp, "#include<stdio.h>\n");
fprintf(fp, "\nint f%d()\n{\n}\n", max + 1);
for (i = max; i > 0; i--) {
writefunc(fp, i);
}
fprintf(fp, "\nint main(int argc, char** argv){\n\tf1();\n}\n");
fclose(fp);
return 0;
}
이 작업을 수행 할 운영 체제를 지정해야합니다. – unwind
숙제 태그가 없습니다. –
@R - 아니요 - 메타 태그가 [공식적으로 죽었습니다] (http://blog.stackoverflow.com/2010/08/the-death-of-meta-tags/) – Justin