我在 C 中有以下程序:
#include<stdio.h>
int main()
{
printf("Normal.\n");
return 0;
}
int fff()
{
printf("Fun!\n");
return 0;
}
我想编译它,以便当我运行该程序时,它会给我“有趣!”。我使用以下行来编译我的程序:
gcc deneme.c -e fff -o deneme
当我运行名为“deneme”的程序时,我得到:
Fun!
Segmentation fault (core dumped)
正如你所看到的,我得到了我想要的,但不理解“段错误”部分。原因是什么?
最佳答案
您尝试将 fff()
指定为入口函数,但 -e
标志替换了函数 _start
,而不是 main 。您需要将 fff
的返回类型更改为 void
并在函数末尾调用 _exit
。
void fff()
{
printf("Fun!\n");
_exit(0);
}
关于c - 替换入口点函数会导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122587/