[问题] 结构初始化

楼主: pex2004 (想到再说)   2014-11-09 00:53:00
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
gcc
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
结构初始化问题
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
程式码(Code):(请善用置底文网页, 记得排版)
正确版:http://ideone.com/jb3AQP
错误版:http://ideone.com/VEUexX
这两个code,差别在于错误版是struct 后,
直接给一个结构变量start,
然后再设定start这个初始值,
但是compiler以后却不能过,这是为什么?
因为把初始值(14、15行)拿掉后,又可以compiler。
补充说明(Supplement):
作者: LPH66 (-6.2598534e+18f)   2014-11-09 01:06:00
正确版 #14 这是宣告时直接初始化, 这时允许这种语法错误版在 #11 已宣告变量, 在那之后的 = 便不是初始化了
作者: lantw44 (#######################)   2014-11-09 01:34:00
错误版那个 要写成 (struct time){12, 32, 25.49} 才对
作者: LPH66 (-6.2598534e+18f)   2014-11-09 01:55:00
嗯, 不过技术上来说这是做出另一个 struct time 再指定给start 就是了
作者: Push5F (帐号已卖)   2014-11-09 02:58:00
作者: suhorng ( )   2014-11-09 14:00:00
http://ideone.com/levWb9 code一字未改(逃
作者: dirkc (3781615)   2014-11-09 20:44:00
c++11的aggregate init+copy assign;原理还是如一二楼说的我是回楼上非回原po;原po应该是c吧

Links booklink

Contact Us: admin [ a t ] ucptt.com