Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
isalpha(在其他ctype.h函数中)返回值的含义是什么?_C_Ctype_Isalpha - Fatal编程技术网

isalpha(在其他ctype.h函数中)返回值的含义是什么?

isalpha(在其他ctype.h函数中)返回值的含义是什么?,c,ctype,isalpha,C,Ctype,Isalpha,如果字符不是字母表,则isalpha()的返回值为0,如果字符是字母表,则返回值为非零。许多其他ctype.h库函数也是如此 此函数的返回类型是否有任何含义? 换句话说,为什么不简单地返回字母表字符的1 我在谷歌上搜索了一下,没有找到任何答案。没有指定返回值,因为它可能会节省一些周期,以便普通实现不必将其设置为1(如果不是零)。例如,不等式测试可以实现为减法 #define NEQ(a,b) (a-b) 如果你想让它在不等式上返回1,你需要做的不仅仅是减法。因此,最好不要坚持函数返回1。如果字

如果字符不是字母表,则
isalpha()
的返回值为
0
,如果字符是字母表,则返回值为非零。许多其他
ctype.h
库函数也是如此

此函数的返回类型是否有任何含义?
换句话说,为什么不简单地返回字母表字符的
1

我在谷歌上搜索了一下,没有找到任何答案。

没有指定返回值,因为它可能会节省一些周期,以便普通实现不必将其设置为1(如果不是零)。例如,不等式测试可以实现为减法

#define NEQ(a,b) (a-b)

如果你想让它在不等式上返回
1
,你需要做的不仅仅是减法。因此,最好不要坚持函数返回1。

如果字符是字母,则返回非零的整数值,否则返回零。它返回一个
int
,因为这是古代C的默认返回值,并且考虑到这些函数是在特定条件下使用的,因此需要不必要的代码(没有什么好处)来限制返回的值为0和1


您可能还注意到,所有这些函数的名称都小于或等于8个字符。这也是古代C语言的遗物。函数的名称不能超过8个字符。

它们返回的是逻辑布尔值。这些函数或宏的实际实现可能是最佳的,从而导致返回除
1
以外的其他值。只需将它们作为布尔函数使用,因为任何非零的值都是“true”。即使检查寄存器是否等于零也更快。因为大多数cpu架构都会自动设置零标志。@G.C.这是另一个实现细节,它取决于代码上下文。如果将结果赋给一个变量(
int-isneq=NEQ(a,2)
),则汇编程序代码不同于仅用作条件
If(NEQ(a,2)){…}
,如果cpu体系结构支持,则检查零标志就足够了。@klutt这是怎么回事?