【问题标题】:Can one declare but not define local variable in C/C++?可以在 C/C++ 中声明但不定义局部变量吗?
【发布时间】:2015-03-02 13:42:33
【问题描述】:

抱歉,忘记了,是否可以在 C/C++ 中声明但不定义局部(函数内部)变量?

看起来不可能,因为除了这个函数之外,不可能从其他地方访问局部变量。

那么,变量应该在使用前“声明”还是在使用前“定义”,正确的说法是什么?

【问题讨论】:

  • 你可以在一个函数内部做一个extern声明,但这不会被绑定到那个函数作用域
  • 是的,我记得,extern 将是全球性的。开始学习编程时,“正常”变量(即我们谈论的变量)呢?
  • @rubenvb 答案不要触及局部变量;迈克尔的回答有一个“定义”的例子,没有任何关于声明(局部变量)的字眼
  • @Dims 这就是为什么我没有关闭你的问题作为重复。你的问题虽然有点学术性。你有什么具体的目标吗?

标签: c++ c variables


【解决方案1】:

抱歉,忘记了,是否可以在 C/C++ 中声明但不定义局部(函数内部)变量?

不,局部(块范围)变量只有声明。它们在程序到达声明时被实例化,不需要单独的定义来控制实例化。

那么,变量应该在使用前“声明”还是在使用前“定义”,正确的说法是什么?

变量和一般命名实体必须在使用前声明。并非所有变量都有单独的定义;如果他们这样做了,那么定义通常不需要可用于使用该变量。

全局(命名空间范围)和静态成员变量(取决于使用)需要定义,以确定哪个翻译单元负责实例化它们。全局变量也可以与它们的定义分开声明,在它们的命名空间中或在该命名空间内的函数中。

【讨论】:

    【解决方案2】:

    对于局部变量,没有定义的概念。它们只是被声明并根据程序的流程有条件地实例化。

    单独的声明和定义用于全局变量和函数。

    【讨论】:

      猜你喜欢
      • 2010-10-01
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多