- 主题:变量声明和定义的区别是什么?
- 声明对编译器说:我有一百块钱在兜里,你让我进去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.*