※ 引述《HuangJC (吹笛牧童)》之铭言:
: 哥的第二篇肺文就在这里好了
: 那时有 if .. then, 但并没说 true 是 1
: 总之,我在 qbasic 下,记得是可把以 true false 变成数字了
: 但是,true 是 -1
: XDDDDDD
: 谁跟你说 true 一定是 1
: 在 C,可能会说,只要不是 0 就是 true
: ( 所以 true 和 false 的机率不一样大啊~)
: 但在那个 basic (因为我不记得是不是 qbasic 了,所以就说得含糊点好了)
: 是认为,false 是 00000000 ,二进制
: true 是 11111111 , 二进制
: 全是 1,在 signed 数字系统里,是 -1 没错
: (对了,在 unsigned 系统里,它是 255,这很糟糕
: 但如果 true 是 -1, 那一切都会在你意料之外,对吧~
C 在 prepocessor 可以 #define TRUE <what number you like>
另外, TRUE/FALSE 值常跟 success/fail 的传回值搞混
Python 2.x 你也可以修改 TRUE/FALSE 的默认值
: 记得在一本书,提到怎么减少程式设计的 bug 里有提到
: 不要写这种程式,因为有风险,有可携性的问题
C 真正的 portable 来自于它的 I/O & Math operator 与 compiler 分离,
这些操作透过呼叫 stdio.h、stdlib.h ...等在 link 时加载相关 libary 达成,
使得原始码在不同 CPU、OS 上 cmopile 时
不会遇到因为 compiler 实作不同莫名其妙 gg 而查不出原因的状况.
: