- 主题:变量声明和定义的区别是什么?
声明对编译器说:我有一百块钱在兜里,你让我进去high吧
定义:看到我这一百块钱没,实打实的,不骗你,它说它有一百块钱在兜里,指不定是诓你的呢
【 在 rayren 的大作中提到: 】
: 如果 “定义 = 声明 + 内存分配”,直接定义就是,为什么还要先声明?
--
FROM 111.198.225.*
关于声明和定义,CPP有个ODR(One Definition Rule),这个东西也算是有小小的陷阱。
--
修改:z16166 FROM 114.245.195.*
FROM 114.245.195.*
分配多少还不知道呢。
【 在 rayren 的大作中提到: 】
: 如果 “定义 = 声明 + 内存分配”,直接定义就是,为什么还要先声明?
- 来自「最水木 for iPhone 8 Plus」
--
FROM 118.112.57.*
假设变量是个外围,那定义就是她香艳的肉体,声明是发在wechat上的招商广告
【 在 rayren 的大作中提到: 】
: 如果 “定义 = 声明 + 内存分配”,直接定义就是,为什么还要先声明?
--
FROM 221.239.27.*
声明是“协议”。
比如函数声明,就是调用压栈,抛栈规范。 但不包含执行。
变量声明,就是 我“要”占内存,寄存器等规范及指令。定义,就是由谁在哪里执行这些规范。
【 在 rayren 的大作中提到: 】
: 如果 “定义 = 声明 + 内存分配”,直接定义就是,为什么还要先声明?
--
FROM 58.248.231.*
定义只需要一个,但是编译的时候不知道是否有这个定义,也许定义在别处,只是在这里也要用,所以这里要声明一下有这么个东西。
【 在 rayren 的大作中提到: 】
: 如果 “定义 = 声明 + 内存分配”,直接定义就是,为什么还要先声明?
--
FROM 27.154.192.*
这个就是C的垃圾之处。
【 在 z16166 的大作中提到: 】
: 比如:没forward declaration,有些互相引用的,根本编译不过去。  &nb ...
--
FROM 42.234.94.*
喷一定要给出理由和论据啊
【 在 txgx (纸上谈医) 的大作中提到: 】
:
: 这个就是C的垃圾之处。
:
:
--
FROM 221.222.20.*
必须先声明才能使用就是证据啊!
人工保证顺序,这不垃圾吗?
没有对比就没有伤害,
struct A (struct B);
struct B ..…
在rust里是可以的。
【 在 z16166 的大作中提到: 】
: 喷一定要给出理由和论据啊
: --
: 发自xsmth (iOS版)
: --
发自「今日水木 on PBCM10」
--
FROM 42.234.94.*
编译策略问题,不足以仅仅因为这个,就冠以“垃圾”二字
这种提前声明的,能支持one-pass compilation、separate compilation
【 在 txgx 的大作中提到: 】
: 必须先声明才能使用就是证据啊!
: 人工保证顺序,这不垃圾吗?
: 没有对比就没有伤害,
: ...................
--
FROM 221.220.170.*