不知道這是不是Xcode4的bug? - MAC

Table of Contents

不知道這是bug,抑或是xcode user中眾所皆知的常識?

總之main function的argument裡頭只要有單字元,

在某些狀況下就會和後面的參數合併,

某些狀況下卻又不會,

原因不詳...

也有可能是我跟xcode還不熟的原因

----下面是我做的一些小測試,若是知道原因就不用往下看了,因為很無聊----


我用xcode 4寫了一個要吃12個參數C++程式,,直接用g++ compile後跑結果是正確的,

但是用Xcode 來run就會出錯,後來我發現原因是Xcode會抓錯參數。

我的參數是

8096 1024 0 8096 1024 0 8096 1024 1 8096 1024 1 一共12組

設定的方式在xcode4的Product->Edit Scheme
(如圖 http://min.us/mb3QKW6G9asfv )

但是跑parse出來的結果,第9和第10會合併

8096 1024 0 8096 1024 0 8096 1024 18096 1024 1

這時候我把第九個參數由1改成11,結果就正確了,

當下我就想有可能是xcode可能是直接呼叫console跑結果,

然後參數太多剛好切到換行之類的問題,但是我想xcode不至於這麼陽春吧...

而且理論上換行也不會出任何問題才是,於是我又試探性的把1改成2,

神奇的狀況出現,竟然parse正確了!

結果又變成下面的樣子,這應該就跟甚麼換行不換行沒有關係了吧?

8096 1024 0 8096 1024 0 8096 1024 2 8096 1024 1


最後我在想有可能是參數太多的關係,於是我把最後一個參數砍掉,

把第九個參數改回1,出來的結果就正常如下:

8096 1024 0 8096 1024 0 8096 1024 1 8096 1024

為了確定真的是太長的關係,我又嘗試著把12個參數加上第13個參數9999,

結果又正常了,

8096 1024 0 8096 1024 0 8096 1024 1 8096 1024 1 9999

玩到這了我覺得1這個參數真的蠻神奇的,

於是我把上例的9999改成1,

結果竟然變成:

8096 1024 0 8096 1024 0 8096 1024 18096 1024 11

1又去跟後面的參數合併了

最後的解決方式是我把每個1後面都加上一組"\+space"

截至目前為止,完全正常,真是神奇的1啊。

但是只有1出問題,2竟然正常也是很詭異的事情,

於是我把所有的1改成2,跑下去之後...果然也發生錯誤了,

但是錯誤的方式和1錯誤的方式不一樣!!

也就是說我輸入

8096 1024 0 8096 1024 0 8096 1024 2 8096 1024 1

出來的的結果是

8096 1024 0 8096 1024 0 8096 1024 2 8096 1024 1

一切正常(這也是之前就做過的實驗)


但是再我輸入

8096 1024 0 8096 1024 0 8096 1024 2 8096 1024 2

出來的結果竟然又是很詭異的狀況如下...

8096 1024 0 8096 1024 0 8096 1024 28096 1024 2

我到這裡我就投降了,不想再try下去-_-

這算bug嗎?





--

我達達的引擎聲是個美麗的錯誤
我不是歸人
是個台客

--

All Comments

Lily avatarLily2011-06-19
可以轉到MacDev板
Blanche avatarBlanche2011-06-23
我用Xcode寫C也常有一些神奇的狀況.....
Delia avatarDelia2011-06-26
也對..應該轉去macdev
Joe avatarJoe2011-06-28
好糟糕的bug 囧