gpt4 book ai didi

c - 是否可以将 page_size 存储到具有静态存储持续时间的对象中?

转载 作者:太空宇宙 更新时间:2023-11-04 06:48:09 32 4
gpt4 key购买 nike

我们可以通过 sysconf(_SC_PAGESIZE) 在运行时提取 page_size。我的第一个意图是将程序启动时的这个值放入一个具有静态存储持续时间的对象中。所以我的意图是在文件范围内声明一些 extern 变量,如下所示

extern const size_t page_size;

但是当我尝试将它定义在文件范围内的其他地方时

const size_t page_size = (const size_t) sysconf(_SC_PAGESIZE);

它不编译。自 6.7.9(p4) 以来,这似乎很清楚:

All the expressions in an initializer for an object that has static or thread storage duration shall be constant expressions or string literals.

我不想在任何需要页面大小时调用 sysconf(_SC_PAGESIZE)。是否有一些解决方法或常见的解决方案是什么?

最佳答案

sysconf(_SC_PAGESIZE) 是一个函数调用。它总是返回相同的值,但它仍然是一个函数调用,所以它不能用于在 C 中初始化一个全局变量。

如果您想避免重复调用该函数,您可以将全局变量声明为非const,并在应用程序启动期间为其赋值。

关于c - 是否可以将 page_size 存储到具有静态存储持续时间的对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55233724/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com