文件链接规则

链接相互独立的模块需要解析外部引用,关键的规则是外部非静态变量只能在一个地方定义.
通过使用关键字extern和进行初始化,构成一个变量的定义.
使用关键字extern但没有初始化,只能构成declaration而不是definition.
如果遗漏extern,不论是否初始化,结果都是定义而非声明.

//程序prog1.cpp
   char c;    //变量c的定义

//程序prog2.cpp
   extern char c;  //the declaration of C

//program prog3.cpp
   extern int n = 5;   //the definition of c

//program prog4.cpp
   char c;         //illegal, secend definition
   extern float n;  //illegal,type error
   extern int k;    //illegal, no definition


  • typedef声明对它所在的文件是局部的,枚举常量声明在它所在的文件内部有链接,
    因此多文件程序中需要的枚举成员和typedef成员应置于头文件中.
    类中定义的枚举成员对于该类是局部的,访问他们续使用作用域解析操作符.



    建议:
    需牢记,每个文件在概念上都是一个模块.
  • 外部声明应放在头文件中,代码应放在代码文件中.

posted on 2007-04-08 13:55  shawn  阅读(213)  评论(0)    收藏  举报

导航

Learning speed > Changing speed

点击这里给我发消息