链接分为三种情况,凡是有名字的东西(函数,类,常量,变量,模板,命名空间等)必然属于其中之一:外链接(external),内链接(internal)和无链接(none).
(1)外链接的意思是每个翻译单元都可以访问这个东西(前提是只要它知道有这么个东西存在),普通的函数,变量,模板和命名空间都有外链接
(2)内链接的含义是:在某个翻译单元里定义的东西只能在翻译单元里使用,在任何函数以外定义的静态变量都有内链接
(3)内链接:在函数里定义的变量只存在与该函数的内部,根本没有任何链接(none).
2.存储类型 c++的存储类型有四种,自动类型、静态类型,寄存器类型和外部类型
其格式如下: ;
(1)自动类型 atuo 特点: 1.采用动态分配方式,在栈区分配空间。当超出作用域时,自动释放空间。 2.在函数内或语句内声明时,可省略atuo关键字。
(2)寄存器类型 register 特点: 1.将变量放在寄存器内,可以加快运行速度。
2.若寄存器被其它了类型 数据占据,则寄存器类型的数据会自动被当作auto变量。
(3)静态类型 static 特点: 静态类型分全局静态和局部静态两种。局部静态变量有两大特点, 1.静态局部变量虽然具有局部变量的作用域,但却有全局变量的生存期。 2.静态局部变量只在第一次执行时进行初始化。
(4) 外部类型 extern 外部变量使用关键字extern来声明。在c++中,只有两种情况下才使用外部变量。 (1).在同一文件中,若变量使用在前,声明在后,则在使用前要声明为外部变量。 (2).当有多个文件组成一个完整的程序,且某一个源文件的变量被其它一个或多个文件引用时,在引用的文件里要用extern对该变量做外部声明。 注意声明与定义的区别,extern定义只能有一个,声明可以有多个。