c++ - 是否保证在 std::string 之前初始化指向字符串文字的指针?
问题描述
//file1.cpp
extern const char* foo;
std::string bar = foo;
//file2.cpp
const char* foo = "foo";
标准是否保证 bar 被初始化为"foo"
?或者它是否可以在构造函数中设置和段错误之前被初始化,foo
即 SIOF 的情况?
解决方案
保证首先发生常量初始化(foo
在这种情况下)。
所以
标准是否保证 bar 被初始化为“foo”?
是的。
或者它是否可以在 foo 被设置和构造函数中的段错误之前被初始化,即 SIOF 的情况?
不。
来源:https ://en.cppreference.com/w/cpp/language/constant_initialization
推荐阅读
- python-3.x - 错误:函数 nn_viz() 中的“ANN 可视化器:不支持可视化层”
- python - 如何在 Seaborn 0.8 中获得直方图?
- flutter - Flutter FutureBuilder() 导致一秒钟的空异常
- docker - Docker:无法将 docker 容器端口路由到主机
- javascript - javascript解释这个代码函数调用它自己
- c# - 如何找到覆盖多边形的圆的最小扇区?
- python - 为什么 pyinstaller 不能在 python 3.9.0 上运行,它会给出以下错误:
- python - 如何通过这个例子在 Python 中按类查找?
- php - 部署magento 2.3时public_html/vendor/magento/framework/Serialize/Serializer/Json.php出错
- aws-codepipeline - AWS CodePipeline:源操作对 CodeStar 连接的权限不足