[英]What is the meaning of return value of isalpha (at other ctype.h functions)?
如果字符不是字母,則isalpha()
的返回值是0
如果是字母則是非零。 許多其他ctype.h
庫函數也是如此。
這個函數的返回類型有什么意義嗎?
換句話說,為什么不簡單地為字母字符返回1
呢?
我用谷歌搜索並沒有找到任何答案。
未指定返回值,因為如果它不為零,它可能會為常見實現節省一些周期,而不必將其設置為 1。 例如,不等式測試可以實現為減法
#define NEQ(a,b) (a-b)
如果你要求它在不等式上返回1
,你必須做的工作不僅僅是減法。 因此,不堅持要求函數返回 1 可能會更好。
如果字符是字母,則返回一個非零整數值,否則返回零。 它返回一個int
值,因為這是古代 C 的默認返回值,並且考慮到這些函數旨在用於條件,因此需要不必要的代碼(幾乎沒有好處)將返回值限制為 0 和 1。
您可能還注意到,所有這些函數的名稱都短於或長於八個字符。 這又是古代 C 的遺物。函數的名稱不能超過 8 個字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.