【问题标题】:GCC - Initialize automatically pointers during compilation timeGCC - 在编译期间自动初始化指针
【发布时间】:2023-03-27 00:54:01
【问题描述】:

是否有一个标志可以传递给 gcc 或 g++,使其在编译期间自动初始化任何指针,例如在开始生成代码之前将指针设置为 NULL。

【问题讨论】:

  • 我不这么认为。此外,为什么不正确地自己处理初始化呢?或者提高一个档次,使用 C++ 并使用适当的智能指针。
  • 声明时只初始化指针有什么问题吗?那么你就不需要担心编译器支持类似的东西了。
  • libMudFlap 并不完全符合您的要求,但仍可能对您有用...
  • 初始化为 NULL 的指针并不比包含随机值的指针好。在你用它做点什么之前它仍然是垃圾。
  • @AndyLester 你是说你从不初始化变量吗?还是您神奇地编写了代码,以便始终可以初始化为良好且可用的值?

标签: pointers gcc initialization


【解决方案1】:

不,没有。像许多其他编译器一样,为了获得最大速度,他们假设您知道自己在做什么 :-)

如果您想要将您的指针初始化为 null,您应该明确地这样做,例如:

myType *myVar = nullptr; // or NULL for C

当然,C++ 提供了多种智能指针,可以为您做到这一点:

std::unique_ptr<myType> myVar; // will be null

这只是确保它在指针本身的构造函数中为空。

事实上,您应该将 C++ 中的任何原始指针代码视为潜在缺陷,几乎没有理由在现代语言中使用它们。 p>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 2013-02-17
    • 2021-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多