本篇文章介绍了,在c++中extern关键字的使用概述,需要的朋友参考下
在c++中,extern关键字用来声明变量和函数,在声明函数的时候,有和没有extern的效果一样,即下面两条语句具有同样的效果:
代码如下:
extern void fun();
void fun();
void fun();
但是对于变量,有和没有extern就有区别,当有extern时,只是告知编译器存在这个变量,编译器并不为该变量分配存储空间,即真正的声明;若没有extern,则在声明的同时,编译器也为该变量分配存储空间。
下面是有extern的情形时的c++源码:
代码如下:
int main() {
extern int i;来源gaodai#ma#com搞*!代#%^码$网
}
extern int i;来源gaodai#ma#com搞*!代#%^码$网
}
下面是对应的汇编码:
代码如下:
; 1 : int main() {
push ebp
mov ebp, esp;esp为指向栈顶的一个寄存器,始终指向栈顶 ebp也是一个寄存器,用来在给main函数分配的栈空间上寻访局部变量,因此常常作为基址
;上面两句的作用是将前一个栈的基址保存(压栈),然后让ebp指向当前函数的栈空间,再次作为基址
; 2 : extern int i;
; 3 : }
xor eax, eax
pop ebp
ret 0;这三句是用来退栈用,以及函数的返回
以上就是从汇编看c++中extern关键字的使用的详细内容,更多请关注gaodaima搞代码网其它相关文章!