问题标签 [static-initialization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - static() 方法(没有任何声明)
我有以下课程:
何时调用此静态方法以及如何调用?
创建这样一个静态方法(没有名称/返回类型)的目的是什么?
c++ - 在给定的翻译单元中,文件级静态变量的顺序是否始终相同?
我有一个程序分成两个源文件:
例子.cpp
示例__ main.cpp
该程序的输出是否保证为:
在所有平台和编译器上?如果是这样,它在标准中的什么地方这么说?如果我使用命名空间first
并second
出现在不同的命名空间中,这有关系吗?如果它们不是静态的并且我使用的是匿名命名空间呢?
c++ - 在 C++ 中初始化类的静态数组成员的更好方法(虽然 const 是首选)
作为类的成员,我有一个指向函数的静态指针数组。
我需要初始化它,但事实证明这个数组有 64K 长,所以用静态初始化器初始化它是不切实际的,{ x, y, z, ... }
因为它会使代码混乱。
我不得不用代码初始化它,有几个循环。
我想这样做的方法是static
在构造函数中初始化数组并为其设置一个标志,所以只有类的第一个实例的构造会触发这个初始化。
从实例内部访问这个静态标志也不是线程安全的,但这是另一回事。
有没有更清洁或更好的方法来做到这一点?
我也希望这个数组是const
,但恐怕唯一的方法是static {}
初始化,对吧?
c++ - 在库中查找所有动态初始化
我有几个大型代码库可以编译成动态库。我知道其中一些有一些非常昂贵的动态全局动态初始化器。(也就是说,构建起来非常昂贵的类/结构的全局实例。)
我想要一种方法来查看这些动态初始化程序在代码中的内容/位置的列表,以便我可以查看它们是否昂贵并且需要重构。我想避免挖掘大量程序集,因为其中一些库非常大并且可能包含数百个动态初始化程序(其中许多很小且相当便宜,如字符串构造)。
有没有可以帮助我解决这个问题的工具?(我的工具链是 Redhat Linux/gcc/cmake。)
c++ - C++ 静态初始化 vs __attribute__((constructor))
例子:
它是确定性的foo
还是bar
先打印出来的?
(我希望并且期望静态对象的构造函数总是首先执行但不确定,并且关于构造函数属性的 GCC 文档没有说明任何内容。)
module - D中单独模块中类的静态初始化和使用
在我的程序中,我有一个要在进入 main() 之前分配的类。我想把这些放在一个单独的模块中,以防止我的代码杂乱无章;但是,一旦模块超出范围(在进入 main() 之前),对象就会被释放,让我尝试在 main.xml 中使用空引用。一个简短的例子:
我仍然习惯于将模块作为封装的基本单元的概念,而不是 C++ 和 Java 中的类。这可以在 D 中完成,还是必须将我的初始化移动到主模块?
c++ - 是什么构成了块范围静态或线程存储持续时间变量的初始化失败?
在回答了这个问题并且在标准论文中没有找到令人满意的答案后,我开始怀疑。该标准规定了上述变量的以下初始化:
§6.7 [stmt.dcl] p4
[...] 否则,此类变量在控制第一次通过其声明时被初始化;这样的变量在其初始化完成时被认为已初始化。如果初始化抛出异常退出,说明初始化未完成,下次控件进入声明时会再次尝试。
没有提到什么可能导致初始化被重试,如果初始化失败除了抛出异常(longjmp()
,tad exit,信号等等)。
我是否忽略了标准中的任何内容?我一遍又一遍地查看初始化、声明和异常子句,甚至通过快速搜索“静态”来查阅CWG 缺陷目录,但找不到任何相关内容。
这是标准中的规格不足(并且是这样的缺陷)吗?
android - android 内容提供程序中的 urimatcher
我是安卓新手。我浏览了Android的代码,ContentProvider
我有点困惑,因为静态UriMatcher
中的语句将首先执行。这里的代码里面有一个静态块,但不知道. 它如何使用它,因为在初始化之前静态块应该运行。UriMatcher
PROVIDER_NAME
PROVIDER_NAME
任何帮助都会被极大地接受......在此先感谢
java - Java - 静态初始化
我写了一段代码:
输出是:
get z
子构造函数
子构造函数
get y
得到 x
z 的值为 0
子构造函数
main 中 z 的值为 0
谁能解释一下为什么 z 的值为 0 而不是 10 ?
编辑:-谢谢大家,我得到了第一个问题的答案。我仍然有疑问,据我所知,静态块是在加载类之后和实例化类的第一个对象之前执行的。那么 SOP("The value of z is "+z) 应该在 SOP("Child constructor") 之前执行!不是吗?
arrays - Pascal - 在数组中硬编码数据 - 快捷方式
这是我正在尝试做的事情:
是否有实现此目的的捷径,我可以在一行中分配值?