cdsfiui 发表于 2017-03-03 22:03

C++11是否规定了静态变量的构造顺序?

C++11之前,不同的.cpp文件里面,静态变量的构造顺序,语言层面并没有相关的规定,行为似乎取决于链接器。
我想知道对于C++11/14而言,这方面有没有新的说明或者规定了呢?

谢谢。

cokeboL 发表于 2017-03-05 10:12

需要初始化的东西自己定义init()的系列流程就好了,何必纠结语法、语言规定?即使你自己弄懂了,
对整个团队也不是什么好事情,总会有队友或者新来的队友搞不懂你依赖语言做了哪些见不得人的事

是面向产品编程还是面向语言编程?
写代码是为了恶心别人?是为了故意做一些高深但是百害无一利的事情显得自己牛逼?

cokeboL 发表于 2017-03-05 10:13

写代码,多点真诚,少点套路

fender0107401 发表于 2017-03-06 21:01

cokeboL 发表于 2017-03-05 10:12
需要初始化的东西自己定义init()的系列流程就好了,何必纠结语法、语言规定?即使你自己弄懂了,
对整个团 ...

确实如此。

cokeboL 发表于 2017-03-07 22:24

回复 4# fender0107401

太多人舍本逐末,写下垃圾代码坑队友和遗祸后人

cokeboL 发表于 2017-03-07 22:29

回复 4# fender0107401

人们看小说里的独孤九剑的时候都觉得对,轮到自己了却都不去化繁为简,非要去练各门各派的复杂奇葩招式

想想我自己,虽然还很菜,但追求简洁的我,简直就是码农界的一股清流,好佩服我自己怎么办!

windoze 发表于 2017-03-08 14:35

具体的顺序是没有规定的,但是C++11要求编译器和连接器确保所有static变量在第一次使用前初始化完毕,而且这个过程必须是线程安全的,也就是说如果你有多个线程并发访问一个static变量,这个变量不应该初始化多次。
当然现实中完全符合标准的编译器貌似并不存在……

fender0107401 发表于 2017-03-09 21:46

回复 5# cokeboL

呵呵,坚决不能坑队友啊。

fender0107401 发表于 2017-03-09 21:46

回复 7# windoze

阿猫威武,阿猫霸气。
页: [1]
查看完整版本: C++11是否规定了静态变量的构造顺序?