global-variables相关内容

请问c具有像C ++的一个定义规则?

最近,我发现有一些情况是绝对违反C的ODR ++但在C编译器来编译确定。 例如,这种怪异的情况下(与我): 源1 INT VAR_GLOBAL = -3; 来源2 的#include<&stdio.h中GT; #包括LT&;&CONIO.H GT;无符号整型VAR_GLOBAL;诠释主(){ 的printf(“%d个\\ N”,VAR_GLOBAL); 残培(); 返回0;} ..

在C和C静态变量++

是否有声明为变静态 C和C ++之间的任何函数外任何区别。我读静态表示文件的范围和变量将不会是文件外部访问。我也看到,在C,全局变量静态。这是否意味着,在C全局变量不能在另一个文件被访问? 解决方案 没有,但在这方面的C和C ++之间没有差异。 读 ..
发布时间:2016-08-21 20:22:03 C/C++开发

从而导致错误的malloc函数(动态内存分配),当它是全球使用

#包括LT&;&stdio.h中GT; #包括LT&;&string.h中GT; 字符* Y; Y =(字符*)malloc的(40); //这里给出了一个错误 诠释的main() { 的strcpy(Y,“世界你好”); } 错误:冲突的类型'Y' 错误:'Y'的previous声明在这里 警告:初始化将指针整数,未作投 错误:初始元素不是常数 警告:数据定义没有类型或存储类 警告:传 ..
发布时间:2016-08-21 20:00:47 C/C++

C / C ++全球VS静态全局

可能重复:结果 静态VS全球 我感到困惑全局和静态全局变量之间的差异。如果静态意味着这个变量只对同一文件是全球性的,那么为什么在两个不同的文件名称相同的原因名称冲突? 有人能解释一下吗? 解决方案 全局变量(不是静态),在那里,当你创建的.o可供链接器使用的其他文件中使用文件。因此,如果有两个文件这样,你得到名称冲突 A : 交流转换器: 的#include<&stdi ..
发布时间:2016-08-19 15:58:10 C/C++开发

如何避免使用nftw在使用全局变量

我想用nftw在C遍历目录结构。 不过,鉴于我想做的事情,我没有看到周围使用全局变量的方式。 使用(n)的FTW都涉及做这样打印出的文件名的课本上的例子。我想,相反,采取的路径名和文件校验并将那些在一个数据结构中。但我没有看到一个很好的办法做到这一点,因为什么可以传递给nftw的限制。 我使用该解决方案包括一个全局变量。然后通过nftw调用的函数可以访问该变量,并添加所需的数据。 有任何合 ..
发布时间:2016-08-19 13:42:06 C/C++

"&的extern QUOT;一个函数里?

好了,读“有点老”一书(以下简称“C语言程序设计”,第二版,由丹尼斯里奇),我来到了一个跨如下: 这是外部变量必须定义,只有一次,在任何函数之外;这留出存储它。变量也必须在想要访问它的每个函数声明 和我很喜欢 - ?!什么的 “变量,还必须在想要访问它的每个函数声明”。然后,我惊呆了一次: INT最大; / * ... * / 诠释的main() { EXTERN INT ..
发布时间:2016-08-19 13:34:06 C/C++开发

访问全局变量在不同的C-文件的pthreads

我有一个叫做全局变量的main.c INT countboards 。在main()我通过(progserver.c)开始的pthread,侦听一个TCP-连接并运行。手段,这个线程将永远不会返回。在main()我进入功能 rmmain(...)这是在rm.c(RM =的ressource管理器)。在rm.c我读 countboards ,在我写这个变量的pthread的progserver.c( ..
发布时间:2016-08-19 00:24:08 服务器开发

如何隐藏一个全局变量,它在多个文件中是可见的?

我写一个C(共享)库。它开始了作为一个单一的翻译单元中,我可以定义一对静态全局变量,必须从外部模块隐藏。 现在该库已经成长,我想模块分解成几个较小的源文件。问题是,现在我有提到全局两种选择: 在每个源文件有私人副本,并通过功能莫名其妙地同步它们的值调用 - 这会非常难看非常快 删除静态定义,所以变量使用的extern 所有翻译单元共享 - 但现在,针对库链接的应用程序code可以访问 ..
发布时间:2016-08-19 00:16:30 服务器开发

ç叉处理全局变量

我不理解这个程序的输出: 的#include< pthreads.h中> #包括LT&;&stdio.h中GT; #包括LT&;&unistd.h中GT;INT I = 0;诠释的main() { 而(ⅰ3;) { 叉子(); 的printf(“%d个\\ N”,I); ++我; } } 输出是: 0 1 2 ..
发布时间:2016-08-19 00:07:48 C/C++

哪里是像$ _GLOBAL,$ _ POST等全局变量保存在哪里?

当我参加一次采访中,面试官问我这个问题。这记忆他们使用的是堆,栈等我GOOGLE了,但我没有得到任何明确的答案。 解决方案 $ _ POST 内部的内部创建的 php_auto_globals_create_post() 并通过提供 PG(http_globals)[TRACK_VARS_POST] ,这仅仅是一个参考的 http_globals 。 的上述定义 http_globals ..
发布时间:2016-08-19 00:07:09 PHP

全局变量的实现

当我写了下面的程序: 文件1: 的#include<&stdio.h中GT; INT全球; 无效print_global1(){ 的printf(“%P \\ N”,&安培;全局); } 文件2:的#include<&stdio.h中GT; 烧焦全球; 无效print_global2(){ 的printf(“%P \\ N”,&安培;全局); } ..
发布时间:2016-08-18 22:51:00 C/C++

为什么全局变量坏,在单线程的,非操作系统,嵌入式应用

大多数我看到使用全局变量的反对的意义,因为它们是指多个线程,线程安全,等等。的问题 但在一个小的,单线程的,非操作系统,情况下,你有什么异议?就我而言,我写在“C”我的嵌入式系统,如果它很重要。我还对产品的唯一开发商。 为什么会消除全局变量让我的code更好? (读取多个答复后,我意识到我应该也指出,这一系统没有动态内存分配(例如malloc的),所有的记忆是在编译时静态分配。) 解决 ..
发布时间:2016-08-18 22:09:02 C/C++

未使用volatile变量

如果我将变量声明为挥发,如果我不使用它的任何地方节目,将编译器优化变量? 在什么在这种情况下volatile变量的局部和全局声明的情况下? TQ。 解决方案 编译器可以,而且很可能将消除(忽略)未挥发性变量声明(但编译器不能消除未使用的全局变量定义 - 它必须承担一些其他翻译单元(TU)会引用它) 如果该变量是本地的功能和未使用的,它可以由编译器消除,而不管其波动。目前还不清楚,你可 ..
发布时间:2016-08-18 15:21:52 C/C++

如何引用在C全局变量的局部变量共享相同的名称?

例如: #包括LT&;&stdio.h中GT;INT富= 100;INT栏() { INT富; / *本地富= foo的全局,如何实施? * / 返回0; }诠释的main() { INT结果=巴(); 返回0; } 我觉得在功能栏中调用foo直接只会得到全局foo。我怎么可以参考当地的富?我知道在C ++中,有这种指针。但是,不C有相似的地方? 非常 ..
发布时间:2016-08-18 14:26:58 C/C++

在C和C静态和extern全局变量++

我做了2个项目,第一个C和第二个在C ++中,具有相同的行为都工作。 C ++项目: header.h INT varGlobal = 7; 的main.c 的#include<&stdio.h中GT; #包括LT&;&stdlib.h中GT; 的#include“header.h”void函数(int i)以 { 静态INT A = 0; 一个++; ..
发布时间:2016-08-18 13:51:26 C/C++开发

使用非常量初始化的全局变量的定义

的#include<&stdio.h中GT;INT I = 10; INT J =; 诠释的main() { 的printf(“%D”,J); } 我得到一个错误,指出初始元素不是常量?这背后有什么原因呢? 解决方案 这背后的原因是什么? C(不像C ++)不允许与非常数值全局值初始化。 C99标准:第6.7.8: 在为具有静态存储期限为对象的初 ..
发布时间:2016-08-17 23:00:28 C/C++

在C全局变量是静态的或不?

在C 静态或的extern 全局变量默认?结果 如果全局变量默认都是静态的,则意味着我们将能够访问它们在一个文件中,但我们可以用不同的文件中的全局变量为好。结果 这是否意味着他们在默认情况下外部存储方式? 解决方案 如果您不指定存储类(也就是的extern 或静态关键字),则默认情况下全局变量的外部链接。从C99标准: §6.2.2标识符联系 3)如果一个对象或函数的文件范 ..
发布时间:2016-08-17 22:50:02 C/C++