Re: [問卦] 幹!為什麼1是true,0是false?

作者: freeunixer (御劍客)   2017-05-28 01:32:34
※ 引述《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 而查不出原因的狀況.
:
作者: s860134 (s860134)   2017-05-28 01:33:00
SOGA
作者: penchiman (銷牽筆基)   2017-05-28 01:33:00
...............???????????
作者: luckyalbert (幸運知音)   2017-05-28 01:34:00
「Python 」
作者: pshuang (中山先生忠實信徒-我愛蘿)   2017-05-28 01:35:00
+-*/ 是呼叫 stdio stdlib 的函式?
作者: ts05593818 (Bakaka)   2017-05-28 01:41:00
有點專業 這些高等c會寫嗎?
作者: johnidfet   2017-05-28 03:38:00
後面都錯 operator 內建的 而且portable我一樣可以有不同的 lib實作那個東西就叫做強型別

Links booklink

Contact Us: admin [ a t ] ucptt.com