gpt4 book ai didi

iphone - c中的函数名称范围

转载 作者:太空狗 更新时间:2023-10-29 15:56:29 26 4
gpt4 key购买 nike

函数名称范围如何跨多个 C 文件工作?

我正在将一个标准的 gnu 工具链项目移植到 iPhone 操作系统,并使用 Xcode 来完成它。

代码通过 make 构建,而不是通过 xcode。通过 xcode 构建时,链接器提示在两个对象中定义了相同的符号(函数)。该代码有两个不同的源文件,#include 它们之间有一个公共(public)文件。虽然......很奇怪(至少对我来说),但它似乎适用于标准工具链。如果这是通过标准 makefile 以某种方式以不同方式处理的东西,有什么想法吗?

最佳答案

所有未标记为静态的函数都具有全局范围(它们被转储到单个命名空间中)。标记为静态的函数仅限于它们定义的翻译单元。

您违反了单一定义规则。

您的一个标题可能有一个变量的定义。例如:在 common.h 中你有

int foo = 42;

将其更改为:

extern int foo; // a declaration

然后创建一个 common.c 文件,您可以在其中放置定义:

int foo = 42;

关于iphone - c中的函数名称范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/580645/

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