如何在没有声明的情况下编写变量定义?
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.
你不能为未声明的东西写定义,直截了当。但是你确实有 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
。
但是在变量定义中,是为变量分配内存,赋值。
我可以写声明或定义声明。示例:
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.
你不能为未声明的东西写定义,直截了当。但是你确实有 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
。
但是在变量定义中,是为变量分配内存,赋值。