zoukankan      html  css  js  c++  java
  • extern 使用

    对于变量:
    extern int a;      //声明一个全局变量a
    int a;                //定义一个全局变量a
    extern int a =0 ;//定义一个全局变量a 并给初值。一旦给予赋值,一定是定义,定义才会分配存储空间。
    int a =0;           //定义一个全局变量a,并给初值,
    声明之后你不能直接使用这个变量,需要定义之后才能使用。
    第三条等于第四条,都是定义一个可以被外部使用的全局变量,并给初值。
    定义只能出现在一处。也就是说,不管是int a;还是int a=0;都只能出现一次,而那个extern int a可以出现很多次。
    引用一个全局变量的时,要声明extern int a;这时候extern不能省略,因为省略了,就变成int a;这是一个定义,不是声明。
     
    编译阶段,各个文件中定义的全局变量相互是不透明的,编译A时觉察不到B中也定义了i,同样,编译B时觉察不到A中也定义了i。
    链接阶段,要将各个文件的内容“合为一体”,因此,如果某些文件中定义的全局变量名相同的话,在这个时候就会出现错误,也就是上面提示的重复定义的错误。
    因此,各个文件中定义的全局变量名不可相同。
    链接阶段,各个文件的内容(实际是编译产生的obj文件)是被合并到一起的,因而,定义于某文件内的全局变量,在链接完成后,它的可见范围被扩大到了整个程序。
     
    对于函数:
    如果函数的声明中带有关键字extern,仅仅是暗示这个函数可能在别的源文件里定义,没有其它作用。即下述两个函数声明没有明显的区别:
    extern int f(); 和int f();
    当然,这样的用处还是有的,就是在程序中取代include “*.h”来声明函数,在一些复杂的项目中,可以在所有的函数声明前添加extern修饰。但是要注意函数名不要重复。
  • 相关阅读:
    Ubuntu Java环境变量配置
    Ubuntu 获得超级用户权限
    ubuntu 修改主机名
    NGSQC toolkit
    MySQL 常用命令
    Yii的事件和行为的区别和应用
    YII使用PHPExcel导入Excel文件的方法
    Yii: 扩展CGridView增加导出CSV功能
    YII中使用SOAP一定要注意的一些东西
    Yii 多表关联relations
  • 原文地址:https://www.cnblogs.com/geowu/p/5099305.html
Copyright © 2011-2022 走看看