c*********n 发帖数: 128 | 1 C++里 variable declaration 有什么用?
function declaration的意义在于你可以先声明了有这个函数然后后面再写这个函数的
具体code,这样代码的结构可以更清晰。
可是variable declaration有什么用呢?
比如来如下一句:
extern int x;
如果x是在其他文件里面定义的,那这句话倒是有用,
可是如果x是在同一个文件里定义的,那还得在后面某个地方再来一句int x;来定义这
个x
还不如就在这里一起给定义了,费那事干吗?
按照Thinking in C++上说的
It can mean the definition is external to the file, or that the definition
occurs later in the file.
这后一种情况,有什么存在的必要么? |
o******r 发帖数: 259 | 2 如果你没定义就用了某个变量,
compiler怎么知道你是typo还是啥,
它得scan 到后面的定义才能分析前面的code
嵌套一下不累死了
这还不是最主要的,
c/c++ compiler得知道变量的type, 编译时要检查
【在 c*********n 的大作中提到】 : C++里 variable declaration 有什么用? : function declaration的意义在于你可以先声明了有这个函数然后后面再写这个函数的 : 具体code,这样代码的结构可以更清晰。 : 可是variable declaration有什么用呢? : 比如来如下一句: : extern int x; : 如果x是在其他文件里面定义的,那这句话倒是有用, : 可是如果x是在同一个文件里定义的,那还得在后面某个地方再来一句int x;来定义这 : 个x : 还不如就在这里一起给定义了,费那事干吗?
|
X****r 发帖数: 3557 | 3 比如在头文件里,它既被其它源文件所包含,也被自己对应的源文件所包含,所以同一
个声明就适用于两种情况。
函数原型不也是一样的吗?
【在 c*********n 的大作中提到】 : C++里 variable declaration 有什么用? : function declaration的意义在于你可以先声明了有这个函数然后后面再写这个函数的 : 具体code,这样代码的结构可以更清晰。 : 可是variable declaration有什么用呢? : 比如来如下一句: : extern int x; : 如果x是在其他文件里面定义的,那这句话倒是有用, : 可是如果x是在同一个文件里定义的,那还得在后面某个地方再来一句int x;来定义这 : 个x : 还不如就在这里一起给定义了,费那事干吗?
|
c*********n 发帖数: 128 | 4 有两种情况,第一,该变量是在另外的文件中定义的,第二,该变量是在本文件中定义
的,但是定义(definition)出现在后面,前面先声明(declaration)一下。
对于第二种情况,为什么不再这个地方干脆就定义了算了呢?
换句说话,对于所有的
extern int x;
可以就在这个地方用
int x;
给定义了不就完了?
【在 o******r 的大作中提到】 : 如果你没定义就用了某个变量, : compiler怎么知道你是typo还是啥, : 它得scan 到后面的定义才能分析前面的code : 嵌套一下不累死了 : 这还不是最主要的, : c/c++ compiler得知道变量的type, 编译时要检查
|
o******r 发帖数: 259 | 5 你说的第二种是用法问题,
有时候需要先使用,
后定义,
方便与否而已
【在 c*********n 的大作中提到】 : 有两种情况,第一,该变量是在另外的文件中定义的,第二,该变量是在本文件中定义 : 的,但是定义(definition)出现在后面,前面先声明(declaration)一下。 : 对于第二种情况,为什么不再这个地方干脆就定义了算了呢? : 换句说话,对于所有的 : extern int x; : 可以就在这个地方用 : int x; : 给定义了不就完了?
|