首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以下功能之间有什么联系?

以下功能之间有什么联系?
EN

Stack Overflow用户
提问于 2012-09-04 03:30:59
回答 1查看 181关注 0票数 1

当我阅读c++ 03标准(7.1.1存储类说明符dcl.stc)时,有一些示例如下所示,我无法知道如何确定每个后续声明的链接?这里有人能帮忙吗?提前感谢!

代码语言:javascript
复制
static char* f();    // f() has internal linkage
char* f() 
       { /* ... */ } // f() still has internal linkage

char* g();           // g() has external linkage
static char* g() 
       { /* ... */ } // error: inconsistent linkage

void h();
inline void h(); // external linkage

inline void l();
void l(); // external linkage

inline void m();
extern void m(); // external linkage

static void n();
inline void n(); // internal linkage

static int a; // a has internal linkage
int a; // error: two definitions

static int b; // b has internal linkage
extern int b; // b still has internal linkage

int c; // c has external linkage
static int c; // error: inconsistent linkage

extern int d; // d has external linkage
static int d; // error: inconsistent linkage

UPD:另外,我如何理解标准中的声明,

对某一实体的连续申报所暗示的联系应达成一致。也就是说,在给定的范围内,声明相同对象名称或函数名称的相同重载的每个声明都意味着相同的链接。但是,给定一组重载函数中的每个函数都可以有不同的链接。

EN

回答 1

Stack Overflow用户

发布于 2012-09-04 03:33:33

除非在全局范围声明的独立函数或变量上使用static,否则它们将具有外部链接

注意,在函数上使用关键字inline并不会改变函数的链接。

另外要注意的一点是,const变量在C++中有内部链接,这与C中的不同。

对某一实体的连续申报所暗示的联系应达成一致。也就是说,在给定的范围内,声明相同对象名称或函数名称的相同重载的每个声明都意味着相同的链接。但是,给定一组重载函数中的每个函数都可以有不同的链接。“

声明将标识符引入编译器,以便编译器能够知道它的type.In C++ --一个标识符可以被声明多少次,例如:

代码语言:javascript
复制
void doSomething(int, double);         // External Linkage
extern void doSomething(int, double);  // External Linkage is explicitly mentioned 

引用的段落意味着,对于同一标识符的所有此类声明都应指定相同的链接。例如,以下内容是无效的:

代码语言:javascript
复制
void doSomething(int, double);        //External Linkage
static void doSomething(int, double); //Internal Linkage due to static

但是,相同函数的重载版本可能有不同的链接,因此以下内容是有效的:

代码语言:javascript
复制
void doSomething(int, double);
extern void doSomething(int, double);
void doSomething(double,int);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12256440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档