gpt4 book ai didi

c++ - 使用 static 关键字复制符号和函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:19 25 4
gpt4 key购买 nike

我想创建一个 Commons.h 文件,我可以在其中放置一些共享信息、常量、宏和辅助函数。

此文件必须包含在我的应用程序的许多部分中。

如果我用这种语法创建函数,我会得到一个Duplicate Symbol错误:

int myFunction(int a){ 
//do something..
}

如果我添加 static 关键字,我不会出错。

static int myFunction(int a){ 
//do something..
}

1) 这是向项目添加辅助函数的有效/正确方法吗?2) 在该定义中添加 static 关键字会发生什么?

最佳答案

不是真的。您正在创建函数的单独实例在每个翻译单元中。你应该做的只是声明 header 中的函数:

extern int myFunction( int a );

并在某处的源文件中定义它。 (请注意,上面的 extern 是可选的,因为它对所有对象都是隐式的函数声明,通常省略它。我加了在这里只是为了强调一个事实,你是在宣布,而不是定义。)

关于c++ - 使用 static 关键字复制符号和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18715692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com