【发布时间】:2016-06-06 00:11:16
【问题描述】:
我目前正在练习C语言。
一切似乎都是合理的,但是当我面对这些初始化和函数时
unsigned long get_sp(void) {
__asm__("movl %esp,%eax\n\t"
"and $0xff000000, %eax"
);
}
int (*fp)(char *)=(int(*)(char *))&puts;
我真的不知道这些行是什么意思。
什么是真正的变量?它是什么类型的? ...
有人可以详细解释一下吗?
【问题讨论】:
-
@TalhaIrfan :这个问题只回答了一半的问题。函数
get_sp()没有解释,恕我直言,不是这个的重复。 -
@MichaelPetch 我认为你是对的迈克尔。我正在编辑问题以使其与 get_sp()
-
这是 2 个完全独立的问题,一个关于函数指针,一个关于堆栈指针函数(如果它被内联,它将中断,因为它没有将
%eax声明为输出)。