相关疑难解决方法(0)

如何使用extern在源文件之间共享变量?

我知道C中的全局变量有时会有extern关键字.什么是extern变量?宣言是什么样的?它的范围是什么?

这与跨源文件共享变量有关,但这是如何工作的?我在哪里用extern

c global-variables extern

942
推荐指数
13
解决办法
67万
查看次数

全球变量是否不好?

在C/C++中,全局变量和我的教授认为的一样糟糕吗?

c c++ global-variables

233
推荐指数
20
解决办法
10万
查看次数

C中共享的全局变量

如何创建在C中共享的全局变量?如果我将它放在头文件中,那么链接器会抱怨已经定义了变量.是在我的一个C文件中声明变量并手动将externs放在要使用它的所有其他C文件的顶部的唯一方法吗?这听起来并不理想.

c variables linker scope global-variables

80
推荐指数
5
解决办法
20万
查看次数

如何在c文件之间共享全局变量?

如果我在.c文件中定义一个全局变量,我如何在另一个.c文件中使用相同变量的值?

在file1.c

#include<stdio.h>

int i=10;

int main()
{
printf("%d",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

file2.c中

#include<stdio.h>

int main()
{
//some data regarding i
printf("%d",i);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

第二个文件如何使用i此处第一个文件的值.

c extern

45
推荐指数
2
解决办法
8万
查看次数

全局变量何时被认为是良好/推荐的做法?

我一直在阅读很多关于为什么全局变量是坏的以及为什么不应该使用它们的原因.然而,大多数常用的编程语言都以某种方式支持全局变量.

所以我的问题是,仍然需要全局变量的原因是什么,它们是否提供了一些无法实现的独特且不可替代的优势?与用户指定的自定义间接相比,从本地范围中检索对象时,全局寻址是否有任何好处?

据我所知,在现代编程语言中,全局寻址与计算内存地址的每个偏移具有相同的性能损失,无论是从"全局"用户内存的开头偏移还是从一个this或任何一个偏移其他指针.因此,就性能而言,用户可以在使用公共指针间接所需的狭窄情况下伪造全局变量,而不会损失实际全局变量的性能.还有什么?真的需要全局变量吗?

c c++ global-variables

5
推荐指数
3
解决办法
3586
查看次数

无法理解静态行为

我写的

// In file t.h

#ifndef __t_h__
#define __t_h__
static int abc;
#endif
Run Code Online (Sandbox Code Playgroud)

-

//In   main.c
    #include <stdio.h>
    #include "t.h"
    int main()
    {
        abc++;printf("%d \n", abc);
        test();
    }
Run Code Online (Sandbox Code Playgroud)

- -

//In test.c

#include <stdio.h>
#include "t.h"

void test()
{
    abc++;
    printf("%d \n", abc);
}
Run Code Online (Sandbox Code Playgroud)

当我运行该项目,我发现outputabc is 1 and 1.但是当我改变它int abct.h.的输出abc = 1 and 2.为什么静态不会在控件到达test.c文件时保留该值.如果它不会保留那么为什么它不应该提供错误作为static variable can not be shared between/among文件?

c c++

2
推荐指数
1
解决办法
239
查看次数

标签 统计

c ×6

global-variables ×4

c++ ×3

extern ×2

linker ×1

scope ×1

variables ×1