我用C编程语言编写程序,并使用objdump将可执行文件转换为asm文件.我不知道gcc如何确定函数将使用的堆栈大小?
int a()
{
int temp[1024 * 1024];
temp[0] = 1;
return temp[0];
}
Run Code Online (Sandbox Code Playgroud)
这只是问题解释,忽略它是天真的.gcc是否会为函数a分配1024*1024字节的空间?
如果函数有点复杂,有时会有很多局部变量,编译器如何确定堆栈大小?
假设c.txt在目录中b。unlink c.txt很简单,系统只是删除{XXX, c.txt}目录中的条目b。但是如果b是 的子目录a,并且我想取消链接会发生什么b,过程是相同的还是更复杂?