0 0

关于extern的使用疑问5

当我在使用extern时遇到了问题,希望有那位大牛能帮我解答下:
1.
#include <iostream>
using namespace std;

extern const int A,B;
int function(){
        //extern const int A,B;
        return A+B;
}
const int A=1;
const int B=2;

int main(){
        int i;

        cout<<function()<<endl;
        return 0;
}
编译能通过,结果显示3

#include <iostream>
//#include "a.cpp"
using namespace std;

//extern const int A,B;
int function(){
        extern const int A,B;
        return A+B;
}
const int A=1;
const int B=2;

int main(){
        int i;

        cout<<function()<<endl;
        return 0;
}这样编译没有过,显示结果是
/tmp/ccPgxI8a.o: In function `function()':
b.cpp:(.text+0x5): undefined reference to `A'
b.cpp:(.text+0xa): undefined reference to `B'
collect2: ld returned 1 exit status
#include <iostream>
//#include "a.cpp"
using namespace std;

//extern const int A,B;
int function(){
        extern  int A,B;
        return A+B;
}
int A=1;
int B=2;

int main(){
        int i;

        cout<<function()<<endl;
        return 0;
}编译能过

C 
2012年3月20日 10:54
目前还没有答案

相关推荐

    你必须知道的495个C语言问题.pdf

    使用`extern`关键字可以避免重复定义的问题,确保在链接阶段只有一个定义被使用。全局变量的初始化应在某个源文件中明确完成,而不是在头文件中。 #### 1.4 extern在函数声明中是什么意思? `extern`关键字用于...

    基于开源PdfiumLib实现PDF转图片

    创建一个新的单元,导入PdfiumLib的C++头文件,并使用Delphi的`extern "C"`关键字来声明函数。这样,Delphi可以调用C++编译的库函数。 3. **API接口**:PdfiumLib提供了一系列API接口,例如FPDF_LoadDocument、FPDF...

    VS之动态库实现和调用

    extern "C" MYDLL_API int Add(int a, int b); ``` 在源文件(如`mydll.cpp`)中实现这些函数。 3. 编译设置: 对于DLL项目,确保配置属性中的“目标扩展名”为`.dll`,“生成库模式”为“多线程 DLL (/MD)”。...

    UDF中文帮助.pdf

    对于已经存在外部域声明的UDF,需要将extern声明替换为Get_Domain函数的调用,并将返回的指针赋值给Domain指针。 UDF存在的局限性包括无法访问所有的变量和模型,比如比热值的调节就不能通过UDF实现,需要使用...

Global site tag (gtag.js) - Google Analytics