作者philip (--以上为智障名单)
看板MacDev
标题[软体] 不知道这是不是Xcode4的bug?
时间Fri Jun 17 08:06:58 2011
※ [本文转录自 MAC 看板 #1D-a_BzE ]
作者: philip (--以上为智障名单) 看板: MAC
标题: [软体] 不知道这是不是Xcode4的bug?
时间: Fri Jun 17 02:47:33 2011
不知道这是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吗?
--
我达达的引擎声是个美丽的错误
我不是归人
是个台客
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.51.220
※ 编辑: philip 来自: 118.166.51.220 (06/17 02:49)
1F:推 andrew43:可以转到MacDev板 06/17 03:57
2F:推 Terence223:我用Xcode写C也常有一些神奇的状况..... 06/17 04:04
3F:→ philip:也对..应该转去macdev 06/17 08:06
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.51.220