相关疑难解决方法(0)

为什么以及何时在C编程中使用静态结构?

我已经被要求修改的驱动程序代码中经常看到静态结构声明.

我试图寻找有关为什么structs声明为静态的信息以及这样做的动机.

你能有人帮我理解这个吗?

c static struct

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

命名空间中的静态变量与非静态变量

我有一个foo包含整数的命名空间bar,声明如此...

foo.h中:

namespace foo {
    int bar;
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我foo.h只包含一个文件,这就可以了.但是当我foo.h从两个或更多文件中包含时出现问题:我收到链接器错误.我想出如果我声明barstatic,我可以包含foo.h在多个文件中.这对我来说似乎很奇怪,因为我不知道可以在命名空间内声明一个静态变量.(那有什么意思?)

为什么这样做?更重要的是,为什么没有它的工作没有 staticstatic在用于什么时意味着什么namespace

c++ static namespaces

37
推荐指数
3
解决办法
2万
查看次数

ANSI-C中的静态意味着什么

可能重复:
C程序中"静态"是什么意思?

static关键字在C 中的含义是什么?

我正在使用ANSI-C.我在几个代码示例中看到,它们static在变量前面和函数前面使用关键字.使用变量的目的是什么?使用函数的目的是什么?

c static keyword ansi-c

33
推荐指数
2
解决办法
4万
查看次数

为什么"static"关键字在C和C++中有这么多含义?

众所周知,关键字在C语言中static多重含义 .C99增加了合法写作的可能性

void foo (int arr[static 50])
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

这增加了混乱,而C++有静态成员变量和函数.

如果可以以某种方式连接所有用途,这不会那么麻烦,但我发现很难找到某些情况的链接.特别是为什么static关键字应该用于修改可见性(链接),或者它究竟与数组的最小元素数量有关.

那么滥用static关键字是否存在历史原因,或者是否存在连接其所有用途的秘密链接?

c c++ static keyword

28
推荐指数
1
解决办法
3336
查看次数

静态内联,外部内联和普通内联函数之间有什么区别?

什么是之间的区别static inline,extern inline和正常的inline功能?

我已经看到了一些模糊的解释.据我所知,static inline不仅仅是一个inline仅在某个文件中引用的函数,因为static关键字通常意味着.这同样适用于extern inline过我想,这是不一样的解释与extern变量.任何答案将不胜感激!

c static extern inline-functions

25
推荐指数
1
解决办法
8011
查看次数

在C中的结构中使用"static"

在C结构中拥有"静态"成员是否合法?

例如

struct my_struct {
    int x;
    static int y;
};
Run Code Online (Sandbox Code Playgroud)

如果它确实合法,那么使用"静态"关键字有什么含义?

c

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

C和C++中的静态变量

声明为staticC和C++之间的任何函数之外的变量之间是否存在任何差异.我读到这static意味着文件范围和变量将无法在文件外部访问.我还读到在C中,全局变量是static.那么这是否意味着C中的全局变量无法在另一个文件中访问?

c c++ static global-variables

16
推荐指数
3
解决办法
3万
查看次数

返回类型的效果是静态的

返回静态类型数据可能产生的影响是什么?我们什么时候应该实际使用它?

static ssize_t
my_read(int fd, char *ptr)
{
    //code from Stevens Unix Network programming. 
      if (something)
         return (-1)
      if (something else)
          return (0)


      return (1)
}
Run Code Online (Sandbox Code Playgroud)

为何静止在这?

谢谢.

c

13
推荐指数
1
解决办法
7524
查看次数

C中与static关键字的内部链接

我知道static在C中是一个重载的关键字.在这里,我只关心它作为一个关键字用来强制内部链接.

如果在.c文件中声明了全局变量,则使用static和不使用之间有什么区别static?无论哪种方式,没有其他.c文件可以访问变量,因此该变量基本上是文件的"私有",有或没有static关键字.

例如,如果我有一个文件foo.c,并且我声明了一个全局变量:

int x = 5;

该变量x仅对内部代码可用foo.c(除非我在一些带有extern关键字的共享头文件中声明它).但是如果我没有在头文件中声明它,那么如果我输入的话会有什么不同:

static int x = 5.

无论哪种方式,它似乎x都有内部联系.所以我static对这方面的目的感到困惑.

c static linkage

11
推荐指数
2
解决办法
4793
查看次数

静态局部变量在哪里

静态局部变量存储在内存中的哪个位置?只能在声明它们的函数内访问局部变量.

全局静态变量进入.data段.

如果静态全局变量和静态局部变量的名称相同,编译器如何区分它们?

c static

11
推荐指数
1
解决办法
2781
查看次数