问题描述
我使用CLion工具查看C语言的反汇编代码,如图
我只写了 int a = 100;为什么汇编代码会在开头空4个字节出来?
问题出现的环境背景及自己尝试过哪些方法
电脑:Mac OS
工具:CLion
我如果main方法什么都不写,movl $0x0 -0x4(%rbp)还是会出现
为什么会出现这样的情况呢???百思不得其解
有人说movl $0x0 -0x4(%rbp)是return 0;的返回值,那真是太天真了。下面我把return 0;改成return 1;你们看看是不是返回值!!!动动你们的猪脑子!!!
前面在网上找了一段解释,但不满意,所以有找了一遍,找到了基本知识,结觉得可能有关联:
http://www.runoob.com/note/26656
C 语言 int main() 和 int main(void) 的区别?
// 这样是正确的
int main()
{
if (0) main(42);
}
// 这样会出错
int main(void)
{
if (0) main(42);
}
如果int main()可以入参,那肯定需要分配内存。
楼主试一试int main(void)有否不同?抱歉我现在不方便,你自己试一试