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

By Sierra Rose
at 2011-06-17T02:47
at 2011-06-17T02:47
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嗎?
--
我達達的引擎聲是個美麗的錯誤
我不是歸人
是個台客
--
總之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嗎?
--
我達達的引擎聲是個美麗的錯誤
我不是歸人
是個台客
--
Tags:
MAC
All Comments

By Lily
at 2011-06-19T04:05
at 2011-06-19T04:05

By Blanche
at 2011-06-23T04:34
at 2011-06-23T04:34

By Delia
at 2011-06-26T18:00
at 2011-06-26T18:00

By Joe
at 2011-06-28T03:12
at 2011-06-28T03:12
Related Posts
MacBook用Win系統同步單槍投影機

By Joseph
at 2011-06-17T00:43
at 2011-06-17T00:43
自動登入(Nally, 無線網路..etc)

By Charlotte
at 2011-06-16T23:38
at 2011-06-16T23:38
皮克斯經驗怎麼幫助賈伯斯打造出蘋果的雲端帝國?

By Lydia
at 2011-06-16T23:38
at 2011-06-16T23:38
Mac的keynote檔

By Wallis
at 2011-06-16T22:31
at 2011-06-16T22:31
MAC BOOK重設密碼的問題

By Enid
at 2011-06-16T22:16
at 2011-06-16T22:16