当全局变量在头文件中声明为静态时,没有链接器错误[重复]

2024-02-07

可能的重复:
C++ 中的静态变量 https://stackoverflow.com/questions/3698043/static-variables-in-c

// x.h
int i = 3;

// x1.cpp
#include"x.h"
//...

// x2.cpp
#include"x.h"
//...

上面的代码将给出链接器错误。但是如果我声明,

//x.h
static int i = 3;

它不会在 gcc 中给出链接器错误,即使我们有相同的#include!我们是否创造了不同的static int i;对于每一个.cpp文件 ?它会导致任何静默链接错误(由于同名)吗?


当 C 代码被编译时,一次是一个“翻译单元”。早期,#includes 被扩展为引用文件的文本。所以你在静态情况下得到的相当于 x1.cpp 说static int i = 3;和 x2.cpp 做同样的事情。和static在这种情况下,大致意思是“不要与其他翻译单元共享此内容”。

所以是的,当你使用static你正在做两个不同的i彼此无关的变量。这不会导致链接错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当全局变量在头文件中声明为静态时,没有链接器错误[重复] 的相关文章

  • 不同提供商的相同 EDMX 文件

    我正在开发一个项目 其中有一个本地数据库 SQL CE 在不存在与服务器的连接的情况下用作缓冲区 在服务器上我想使用相同的数据库布局 当然 我想使用服务器和客户端上可用的 Common dll 中的相同 EDMX 文件 在客户端中 我有一个
  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • C# 中直接从 URL 获取图像尺寸

    我正在尝试使用以下代码直接从网络上获取图片的尺寸 string image http www hephaestusproject com csharp3 png byte imageData new WebClient DownloadDa
  • C# - Visual Studio 中的 System.OutOfMemoryException

    我遇到问题 当我右键单击 Visual Studio 中的主窗体并转到 视图设计器 时 出现错误 它说 引发了 System OutOfMemoryException 类型的异常 堆栈跟踪 at System Reflection Asse
  • 使用 GCHandle 将大型结构数组从 C# unity 脚本传递到 C++ dll 在 C++ 函数执行后崩溃

    我想从 C unity 脚本将结构数组传递给 c 本机插件 我做了如下操作 我可以访问数据 但我的应用程序在执行 c 函数后崩溃 我不知道为什么 C side StructLayout LayoutKind Sequential publi
  • 何时使用 C++ 私有继承而不是组合?

    你能给我一个具体的例子吗 什么时候使用私有继承优于组合 就我个人而言 我将使用组合而不是私有继承 但在某些情况下 使用私有继承可能是特定问题的最佳解决方案 正在阅读C faq http www parashift com c faq lit
  • 静态 OpenCV 库中未定义的引用

    我有一个使用 OpenCV 3 1 的 C 项目 并且使用共享库可以正常工作 但现在我想使用静态库 位于项目目录中的文件夹中 来编译它 因为我希望能够在未安装 OpenCV 的情况下导出它 如果需要还可以编辑和重新编译 这次我重新编译了 O
  • C语言中没有循环可以打印数组吗?

    例如 在Python中 如果我们将一个列表作为数组 它会直接用一行代码打印整个数组 有什么办法可以用C语言实现同样的事情吗 简短回答 No 对表格上几乎所有问题的简短回答 用 C 语言做 X 工作能像用 Python 一样简单吗 No 长答
  • 如何从 C# 调用 F# 类型扩展(静态成员函数)

    FSharp 代码的结构如下 我无法控制源代码 namespace FS
  • C#生成的csv文件通过电子邮件发送嵌入到Lotus Note中电子邮件的底部

    我遇到了一个奇怪的问题 即使用 NET SmtpClient 通过电子邮件发送的 CSV 附件出现在电子邮件底部 而不是 Lotus Note 中的附件 我只是不知道如何解决这个问题 而且我无法访问客户端计算机 这使得调试非常困难 我可以采
  • 从 Golang 调用 C 函数

    我想在 Golang 中编写控制器逻辑并处理 json 和数据库 同时在 C 中使用我的数学处理模型 在我看来 调用 C 函数的开销必须尽可能低 就像设置寄存器 rcx rdx rsi rdi 一样 执行一些操作fastcall 并获取 r
  • 为什么 rand() 总是返回相同的值? [复制]

    这个问题在这里已经有答案了 可能的重复 在C中生成随机数 https stackoverflow com questions 3067364 generating random numbers in c 使用 rand 生成随机数 http
  • 从二进制文件读取字节到 long int

    我有两个问题 我有二进制文件的数据 我想使用 read 函数读取前 8 个字节以签署 long int 但我不能 你知道我该怎么做吗 如何直接读取一块数据到字符串中 我可以像所示那样阅读吗 前任 ifstream is is open te
  • 确定相关词的编程方式?

    使用网络服务或软件库 我希望能够识别与词根相关的单词 例如 座位 和 安全带 共享词根 座位 但 西雅图 不会被视为匹配 简单的字符串比较对于这类事情似乎是不可行的 除了定义我自己的字典之外 是否有任何库或 Web 服务不仅可以返回单词定义
  • 删除数组时出现访问冲突异常

    删除分配的内存时 出现 访问冲突读取位置 异常 如下所示 我有一个针对 Visual Studio 2010 工具集 v100 C 编译器编译的本机 dll 我有一个针对它的托管 dll 包装器 它是针对工具集 v90 编译的 因为我想以
  • XCode std::thread C++

    对于学校的一个小项目 我需要创建一个简单的客户端 服务器结构 它将在路由器上运行 使用 openWRT 并且我试图在这个应用程序中使用线程做一些事情 我的 C 技能非常有限 所以我在internet https stackoverflow
  • 包含从代码隐藏 (ASP.NET C#) 到 ASPX 中的图像概述的图像列表 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在两个点之间创建一条曲线,每个点都具有标准化向量

    因此 我需要一种写入方法来在两点之间创建一条曲线 每个点都有一个指向任意方向的归一化向量 我一直在尝试设计这样一种方法 但一直无法理解数学 在这里 由于一张图片胜过一千个文字 这就是我所需要的 在图中 矢量垂直于红线 我相信向量需要进行相同
  • 如何创建实体集或模型而不在数据库中创建相应的表 - 实体框架

    我的 sqlserver 数据库中有一个存储过程 它返回多个结果集 我正在使用 msdn 中的以下链接从实体框架中的 SP 读取多个结果集 https msdn microsoft com en us library jj691402 v
  • 线程安全的有限大小队列,不使用锁

    我正在尝试编写一个主题队列 但遇到死锁和其他多线程问题 我想用Interlocked CompareExchange避免lock用法 但这段代码并没有按预期工作 它只是擦除整个队列 我在这里做错了什么 public class FixedS

随机推荐

  • C++ 使用 constexpr 和 lambda 表达式

    我正在看书C 17 完整指南 https rads stackoverflow com amzn click com 396730017X以及第 6 1 节中constexprlambda作者举了两个例子 auto squared1 aut
  • 检查 Swift 中是否存在 func

    我想在调用函数之前检查它是否存在 例如 if let touch AnyObject touches anyObject let location touch locationInView self touchMoved Int locat
  • Glassfish 作为 OSGi 容器

    我正在评估 OSGi 容器 主题是使用 Glassfish 来包含我的 OSGi 应用程序组件 我的问题是 Glassfish 对此有好处吗 有人有以这种方式使用它的经验吗 背景 该应用程序不是 Java EE 应用程序 而是 Spring
  • Bash 在脚本中退出 sudo

    我需要使用 sudo 执行安装脚本 但在脚本结束时 脚本需要退出 sudo 并以普通用户身份继续 Example sudo install sh 脚本以 root 身份运行并执行所需操作 su myscriptuser service my
  • 如何以编程方式获取我的设备的手机号码?

    我尝试过使用两种方法来检索我的电话号码 但这两种方法都不起作用 我用了 电话管理器 订阅管理器 我确实获得了网络名称 国家 地区 iso 和 IMEI 但每当我尝试返回号码时 它都不会返回任何内容 我还添加了这些所需的所有权限 我的清单如下
  • Selenium - 过时的元素引用:元素未附加到 C# 中的页面文档

    我正在使用 selenium 来获取网站表格中的数据进行分析 我必须扫描并获取大约 1000 行的表 我知道该页面有 Javascript 它会自动更新 DOM 但表的行太多 所以当我扫描代码时总是抛出异常 我尝试使用以下代码 Boolea
  • 在 Android 搜索视图中显示建议列表中的选择

    我有一个带有建议列表的搜索视图 如果用户从列表中选择一个项目 则会发送一个新意图 我可以应用我的过滤器 但搜索视图仍为空 如果我使用 setQuery 更新 onNewIntent 中的搜索视图 见下文 效果是所选项目显示在搜索视图中 但建
  • APNs 通过 macOS Sierra 推送通知

    我正在尝试使用连接到的简单 PHP 工具向我的手机发送推送通知ssl gateway push apple com 2195 但连接失败并出现以下错误 Warning stream socket client SSL operation f
  • 通过文件目标完美缓存

    阅读有关的文档后基于文件目标的输出缓存 https docs prefect io core concepts persistence html output caching based on a file target 我认为这个工作流程
  • iPhone SDK 合成 BOOL 数组

    当尝试合成如下所示的 bool 数组时 出现编译器错误 h import
  • getdata() 脚本仅在时间触发时超时

    我正在从另一个电子表格导入一个范围 并使用以下脚本将其粘贴到当前电子表格中 function getdata var values SpreadsheetApp openById XXXXXX getSheetByName SheetB g
  • 使用tinymce 进行绑定淘汰赛

    我正在尝试使用knockout 3 0 0 with tinymce 4 0 18 我想创造一些东西像这样 http jsfiddle net SalvadorDali jY3X2 1 很少有可编辑元素 此处为 3 个 但这些元素取自淘汰赛
  • 使用 ElementTree 读取 .xml 等电子表格

    我正在使用 ElementTree 读取 xml 文件 但有一个单元格无法读取其数据 我调整了我的文件以制作一个可重现的示例 如下所示 from xml etree import ElementTree import io xmlf
  • 如何删除 Django 模型中的 ImageField 图像

    我有一个Profile像这样的模型 class Profile models Model photo models ImageField upload to img users blank True 我希望我的用户能够删除他们的个人资料图片
  • 与所选 NSMenuItem 的背景完全匹配

    我正在为一个创建自定义视图NSMenuItem 为了在选择时绘制背景 我改编了几行自定义菜单 https developer apple com library mac samplecode CustomMenus Introduction
  • 每当打开/显示视图时运行控制器函数

    我正在构建一个使用 Angular ionic 的应用程序 该应用程序在底部使用经典的三按钮菜单 其中包含三个离子选项卡 当用户单击选项卡时 该模板将通过 ui router 打开 我有这样的状态 stateProvider state o
  • 构建一个不带 $ 美元符号的自定义 jQuery

    我有一个 javascript 库 可以在不同类型的网站上运行 例如 wordpress 或 magento js lib 动态加载 jQuery 并调用 noConflict 来分配给脚本元素的 onereadystatechange 中
  • Java Jframe 正在显示,但内容(面板)未正确显示

    我开发了一个小应用程序来跟踪我的日常工作活动 该工具包含两个类 Executor 用户界面进度 我的目标是创建一个进度条来更新执行状态 使用的逻辑如下所示 从Executor类中定义的executeTask 我创建了 UIProgress
  • emplace 的性能比 check 后跟 emplace 差

    我有一个std unordered map with a 值类型没有默认构造函数 所以我无法执行以下操作 auto k get key auto v my map k 我最终编写了一个辅助函数 value type get value ke
  • 当全局变量在头文件中声明为静态时,没有链接器错误[重复]

    这个问题在这里已经有答案了 可能的重复 C 中的静态变量 https stackoverflow com questions 3698043 static variables in c x h int i 3 x1 cpp include