如果字符不是字母表,则返回值isalpha()
是,如果是字母表则返回0
非零值。许多其他ctype.h
库函数也是如此。
这个函数的返回类型有什么意义吗?
换句话说,为什么不简单地返回1
字母字符呢?
我用谷歌搜索并没有找到任何答案。
未指定返回值,因为如果它不为零,它可能会为常见实现节省一些周期而不必将其设置为 1。例如,不等式测试可以实现为减法
#define NEQ(a,b) (a-b)
如果你要求它返回1
不等式,你必须做更多的工作,而不仅仅是减法。因此,不坚持函数返回 1 可能会更好。
如果字符是字母,则返回一个非零整数值,否则返回零。它返回一个,int
因为这是古代 C 的默认返回值,并且考虑到这些函数是在条件下使用的,它需要不必要的代码(几乎没有什么好处)来将返回的值限制为 0 和 1。
您可能还注意到,所有这些函数的名称都短于或长于八个字符。这又是古代 C 语言的遗物。函数名称不能超过 8 个字符。