哈,请教下各位,下面的代码主要是什么目的?

中山野鬼 发布于 2015/09/09 22:50
阅读 1K+
收藏 0

除了刷存在感,我还真不知道有什么目的。各位可有好的观点,我也学习一二。

#include <ctype.h>

// WCharacter.h prototypes
inline boolean isAlphaNumeric(int c) __attribute__((always_inline));
inline boolean isAlpha(int c) __attribute__((always_inline));
inline boolean isAscii(int c) __attribute__((always_inline));
inline boolean isWhitespace(int c) __attribute__((always_inline));
inline boolean isControl(int c) __attribute__((always_inline));
inline boolean isDigit(int c) __attribute__((always_inline));
inline boolean isGraph(int c) __attribute__((always_inline));
inline boolean isLowerCase(int c) __attribute__((always_inline));
inline boolean isPrintable(int c) __attribute__((always_inline));
inline boolean isPunct(int c) __attribute__((always_inline));
inline boolean isSpace(int c) __attribute__((always_inline));
inline boolean isUpperCase(int c) __attribute__((always_inline));
inline boolean isHexadecimalDigit(int c) __attribute__((always_inline));
inline int toAscii(int c) __attribute__((always_inline));
inline int toLowerCase(int c) __attribute__((always_inline));
inline int toUpperCase(int c)__attribute__((always_inline));


// Checks for an alphanumeric character. 
// It is equivalent to (isalpha(c) || isdigit(c)).
inline boolean isAlphaNumeric(int c) 
{
  return ( isalnum(c) == 0 ? false : true);
}


// Checks for an alphabetic character. 
// It is equivalent to (isupper(c) || islower(c)).
inline boolean isAlpha(int c)
{
  return ( isalpha(c) == 0 ? false : true);
}


// Checks whether c is a 7-bit unsigned char value 
// that fits into the ASCII character set.
inline boolean isAscii(int c)
{
  return ( isascii (c) == 0 ? false : true);
}


// Checks for a blank character, that is, a space or a tab.
inline boolean isWhitespace(int c)
{
  return ( isblank (c) == 0 ? false : true);
}


// Checks for a control character.
inline boolean isControl(int c)
{
  return ( iscntrl (c) == 0 ? false : true);
}



有意思吗?反正我觉得没意思。就是要变名称,也可以如下嘛

#define isControl(c) iscntrl((int)c)
。。。



加载中
0
如比如比
如比如比
不过如此而已,没有意思。https://gcc.gnu.org/onlinedocs/gcc/Inline.html
0
bastetwang
bastetwang
你可以再写篇 文章 喷Arduino的代码是多么垃圾。
0
bastetwang
bastetwang
然后再得出你的结论,开源果然就是很垃圾。
0
jQer
jQer

似乎是  Windows 的字符转换,话说 Windows 中文这种奇葩中的一些程序不支持 Utf8,而是 GBK。inline 这种东西没必要声明,直接写在头文件就行了。#define 编译器没法捕捉,而且现在不是提倡卫生宏么,inline 函数多少能有卫生的功能。3目运算似乎是为了对应 boolean 的定义值。再写个宏也许更好些:


inline boolean isControl(int c)
{
    return toBoolean(iscntrl (c));
}



0
方棱
方棱
很简单,为了让C语言遵守《团队编程代码规范》,任何人(或者东西)不听话都要接受改造。
0
我的乖乖
我的乖乖
应该是规范性的东西吧!
0
月落苍穹
月落苍穹

这样字多,代码行数多,可以多拿稿费。而且命名更好,isAlphaNumeric就比isalnum好识别,而且返回类型更规范,返回了boolean类型,原始的是int类型。
最主要的还是字多,占存储空间,让阅读的人有一种作者很牛逼的感觉。尤其是三目操作符,这样看起来比较绕,九曲回肠。

0
Force武装卫队
Force武装卫队
x== y  are boolean
0
中山野鬼
中山野鬼

引用来自“bastetwang”的评论

你可以再写篇 文章 喷Arduino的代码是多么垃圾。
哈,已经没空吐槽了,以 arduino做原型,整在全部重写呢。和软件开源不一样的地方,硬件开源,很多设备都存在相互冲突,从引脚到驱动模式。每个模块独立上去都能用用,几块板子一套,哈,单片机就那么几个脚。你怎么搞?
0
宏哥
宏哥

引用来自“bastetwang”的评论

你可以再写篇 文章 喷Arduino的代码是多么垃圾。

引用来自“中山野鬼”的评论

哈,已经没空吐槽了,以 arduino做原型,整在全部重写呢。和软件开源不一样的地方,硬件开源,很多设备都存在相互冲突,从引脚到驱动模式。每个模块独立上去都能用用,几块板子一套,哈,单片机就那么几个脚。你怎么搞?

你真该学习一下lua.

几个小时就够了, 可以帮你节约大量时间

返回顶部
顶部