1#ifndef _CTYPE_H 2#define _CTYPE_H 3 4#ifdef __cplusplus 5extern "C" { 6#endif 7 8#include <features.h> 9 10int isalnum(int); 11int isalpha(int); 12int isblank(int); 13int iscntrl(int); 14int isdigit(int); 15int isgraph(int); 16int islower(int); 17int isprint(int); 18int ispunct(int); 19int isspace(int); 20int isupper(int); 21int isxdigit(int); 22int tolower(int); 23int toupper(int); 24 25#ifndef __cplusplus 26static __inline int __isspace(int _c) 27{ 28 return _c == ' ' || (unsigned)_c-'\t' < 5; 29} 30 31#define isalpha(a) (0 ? isalpha(a) : (((unsigned)(a)|32)-'a') < 26) 32#define isdigit(a) (0 ? isdigit(a) : ((unsigned)(a)-'0') < 10) 33#define islower(a) (0 ? islower(a) : ((unsigned)(a)-'a') < 26) 34#define isupper(a) (0 ? isupper(a) : ((unsigned)(a)-'A') < 26) 35#define isprint(a) (0 ? isprint(a) : ((unsigned)(a)-0x20) < 0x5f) 36#define isgraph(a) (0 ? isgraph(a) : ((unsigned)(a)-0x21) < 0x5e) 37#define isspace(a) __isspace(a) 38#endif 39 40 41#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 42 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 43 || defined(_BSD_SOURCE) 44 45#define __NEED_locale_t 46#include <bits/alltypes.h> 47 48int isalnum_l(int, locale_t); 49int isalpha_l(int, locale_t); 50int isblank_l(int, locale_t); 51int iscntrl_l(int, locale_t); 52int isdigit_l(int, locale_t); 53int isgraph_l(int, locale_t); 54int islower_l(int, locale_t); 55int isprint_l(int, locale_t); 56int ispunct_l(int, locale_t); 57int isspace_l(int, locale_t); 58int isupper_l(int, locale_t); 59int isxdigit_l(int, locale_t); 60int tolower_l(int, locale_t); 61int toupper_l(int, locale_t); 62 63int isascii(int); 64int toascii(int); 65#define _tolower(a) ((a)|0x20) 66#define _toupper(a) ((a)&0x5f) 67#define isascii(a) (0 ? isascii(a) : (unsigned)(a) < 128) 68 69#endif 70 71#ifdef __cplusplus 72} 73#endif 74 75#endif 76