如何在没有声明的情况下编写变量定义?

How can I write variable definition without declaration?

我可以写声明或定义声明。示例:

int x = 1; // declaration and definition
extern int x; // only declaration
bool f(); // only declaration
bool g() {} // declaration and definition
class X; // declaration
class X {}; // declaration and definition

由此可见,只写declaration和declaration with definition是可以的。 但是我怎么能只写定义呢?听说可以。

没有声明就没有定义,因为第一个术语的含义包括第二个术语。此外,我提供了一些来自 C++ 草稿的信息(6.2. 声明和定义):

A declaration is said to be a definition of each entity that it defines.

Link: https://eel.is/c++draft/basic.def

你不能为未声明的东西写定义,直截了当。但是你确实有 C++ 构造来编写可能不作为第一个声明的定义。他们在这里:

struct C {
    static int i;
};

int C::i = 1;

namespace N {
    extern int i;
}

int N::i = 2;

int C::i = 1;int N::i = 2; 都不能作为 i 的初始声明。除非每个 i 的先前声明都存在,否则这些定义是无效的。所以在某种程度上,它们是非声明定义。

这个答案可能有争议,可能不属于您想要的答案,但这些就是示例。

变量声明的意思是,指定变量的类型和名称。 例:int A表示变量类型(内存中的内存位置)为int,名称为A。 但是在变量定义中,是为变量分配内存,赋值。