c 中的外部和全局

2023-11-27

谁能告诉我使用有什么特殊要求吗EXTERN or GLOBALC 程序中的变量? 如果我从 gloabl 更改为 extern,我看不出像下面这样的程序有任何区别。

#include <stdio.h>
#include <stdlib.h>
int myGlobalvar = 10;

int main(int argc, char *argv[])
{
  int myFunc(int);
  int i;
  i = 12;
  myGlobalvar = 100;
  printf("Value of myGlobalvar is %d ,  i = %d\n", myGlobalvar, i);
  i = myFunc(10);
  printf("Value of passed value : %d\n",i);
  printf("again Value of myGlobalvar is %d ,  i = %d\n", myGlobalvar, i);
  system("PAUSE");  
  return 0;
}
int myFunc(int i)
{
    i = 20 + 1000;
//extern int myGlobalvar;
myGlobalvar = 20000;
//    printf("Value of passed value : %d",i);
return i;
}

如果取消注释extern int myGlobalvar,该值不会改变。

有没有correct两者之间的区别?

有人可以纠正我吗?


关键词extern意思是“该变量的存储空间分配在其他地方”。它告诉编译器“我正在引用myGlobalvar在这里,你以前没见过,但没关系;链接器会知道你在说什么。”在你的具体例子中它不是特别有用,因为编译器does知道关于myGlobalvar-- 它是在同一翻译单元中较早定义的(.c or .cc文件。)您通常使用extern当你想指代某个东西时not在当前翻译单元中,例如在您将链接到的库中定义的变量。

(当然,通常该库会声明extern为您提供的变量,在您应该包含的头文件中。)

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

c 中的外部和全局 的相关文章

随机推荐

  • 选择最后插入 ID()

    有人可以解释一下 MySQL 函数 LAST INSERT ID 是如何工作的吗 我试图获取数据库中最后插入的行的 id 但每次都获取 1 我用的是mybatis 示例查询是
  • span内嵌套div问题

    div 是一个块元素 而 span 是一个内联元素 因此根据 xhtml 1 0 验证 这是不正确的 但仍然有几个网站使用这种方法进行样式设置 可以吗 或者它会引起一些问题请帮助我 这是不对的 你永远不需要这样做 gt 因此永远不应该
  • 如何在程序不做大改动的情况下实现undo/redo操作

    你好 我即将向我当前正在编写的应用程序添加新功能 我需要编写撤消 重做功能 然而 我们的应用程序 90 已经准备就绪 我不知道在不影响已创建的 太多 代码的情况下实现此功能的最佳方法是什么 这里没有太多细节 然而 撤消 重做功能通常是通过某
  • Angular - res.json() 不是函数

    我的 API 服务出现问题 该服务连接到我的 Nodejs 后端 api 错误说 ERROR TypeError res json is not a function 最近更新此服务以使用 HTTPClient 而不是 Http 后 我收到
  • 在 jenkins pipeline sh 步骤中使用嵌套命令替换

    我试图在归档之前使用指向相关内部文件夹的符号链接来展平结果目录 该文件夹首先遍历运行时确定的一堆变量路径名 我似乎不太能用我从这个SO中学到的命令替换方法来获得正确的语法answer 问题 是否存在我不知道的如何从 Jenkins 管道步骤
  • 引发事件(“onchange”)

    我有一个 winform 和一个WebBrowser控件 我正在更改选择 HTML 控件中的选项 webBrowser1 Document GetElementsByTagName select 4 GetElementsByTagName
  • HBITMAP 到 BITMAP 转换

    无法理解这段代码有什么问题 HBITMAP bm 0 BITMAP Bitmap bm HBITMAP LoadImage 0 path IMAGE BITMAP 0 0 LR LOADFROMFILE int error GetObjec
  • Mongodb 对象之间的关系

    我正在尝试使用 mongodb 实现博客文章存储 我有两个域实体 博客文章 和 作者 目前我已将 AuthorId 属性添加到博客文章实体中 这是存储对象之间关系的正确方法吗 我认为这篇文章适合你http www mongodb org d
  • 如何使用 CSS 在悬停时向图像添加工具提示

    我有三个图像 悬停时它们会使用 css 中的 hover 增加大小 当用户将鼠标悬停在图像上时 我还希望出现一个带有图像描述的工具提示 我还应该能够定位工具提示 HTML div class bottle container div cla
  • python calendar.HTMLCalendar

    我想我想使用 python 内置日历模块来创建带有数据的 HTML 日历 我说我认为是因为我可能会想出更好的方法 但现在这有点个人化 我不知道这是否是有意以这种方式使用的 但如果你不能至少让日子变得美好 那么这似乎有点毫无意义 a 这会设置
  • PHP 命名空间和 require

    我需要在主 index php 文件中包含几个文件 我正在使用命名空间 我可以使用 include require 并使文件使用与 index php 相同的命名空间 而不在每个包含的文件中指定命名空间和 use 语句吗 PHP 命名空间范
  • 在 TensorFlow 中对数组进行排序

    假设我在 TensorFlow 中有一个数组 0 12300211 0 51767069 0 13886075 0 55363625 0 47279349 0 50432992 0 48080254 0 51576483 0 8434793
  • 使用 Jasmine 监视没有对象的函数

    我正在使用 Jasmine 并且有一个库 js 文件 其中包含许多不与任何对象关联的函数 即全局函数 我该如何监视这些功能 我尝试使用窗口 文档作为对象 但即使调用该函数 间谍也无法工作 我还尝试将其包装在一个假对象中 如下所示 var f
  • 如何避免单击按钮时的 Page_Load() ?

    我有两个按钮 预览和保存 借助预览按钮 用户可以根据格式查看数据 然后保存 但是 当单击预览时 附加到 ajaxcontrol 日历 的一个文本框将变为空 用户必须在保存之前填写日期 这要怎么处理呢 在预览时单击我获取详细信息以在布局中显示
  • Python 中的按键

    Is it possible to make it appear to a system that a key was pressed for example I need to make A key be pressed thousand
  • 使用 hadoop 运行 jar 时 NoSuchMethodError Sets.newConcurrentHashSet()

    我在用着cassandra all 2 0 7api 与Hadoop 2 2 0
  • 使用zef安装模块后如何编辑模块中的源代码?

    例如 我已经安装了Cro模块 当我运行我的简单代码时 my headers Authorization gt OAuth realm oauth consumer key xxxxxxxxxxxxxxxx oauth nonce 29515
  • 将数组写入 csv python(一列)

    我正在尝试将数组的值写入 python 中的 csv 文件 但是当我在Excel中打开文件时 数据显示在一行中 我想要一列 其中数组的每个成员都是一行 数组 testLabels 的形式为 array deer airplane dog f
  • 如何在 Jekyll 标签插件中获取 Markdown 处理过的内容

    我正在为我的 Octopress 网站开发 Jekyll 标签插件 以帮助我制作 注释 元素 我只是希望能够在我的博客上突出显示一条信息作为旁注 就像这样 问题是 我不知道如何处理此标签的内容 即 Markdown 或 Textile 上面
  • c 中的外部和全局

    谁能告诉我使用有什么特殊要求吗EXTERN or GLOBALC 程序中的变量 如果我从 gloabl 更改为 extern 我看不出像下面这样的程序有任何区别 include