⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xstrtol.h

📁 linux平台中
💻 H
字号:
#ifndef XSTRTOL_H_# define XSTRTOL_H_ 1# if HAVE_INTTYPES_H#  include <inttypes.h> /* for uintmax_t */# endif# ifndef PARAMS#  if defined PROTOTYPES || (defined __STDC__ && __STDC__)#   define PARAMS(Args) Args#  else#   define PARAMS(Args) ()#  endif# endif# ifndef _STRTOL_ERRORenum strtol_error  {    LONGINT_OK, LONGINT_INVALID, LONGINT_INVALID_SUFFIX_CHAR, LONGINT_OVERFLOW  };typedef enum strtol_error strtol_error;# endif# define _DECLARE_XSTRTOL(name, type) \  strtol_error \    name PARAMS ((const char *s, char **ptr, int base, \		  type *val, const char *valid_suffixes));_DECLARE_XSTRTOL (xstrtol, long int)_DECLARE_XSTRTOL (xstrtoul, unsigned long int)_DECLARE_XSTRTOL (xstrtoumax, uintmax_t)# define _STRTOL_ERROR(Exit_code, Str, Argument_type_string, Err)	\  do									\    {									\      switch ((Err))							\	{								\	case LONGINT_OK:						\	  abort ();							\									\	case LONGINT_INVALID:						\	  error ((Exit_code), 0, "invalid %s `%s'",			\		 (Argument_type_string), (Str));			\	  break;							\									\	case LONGINT_INVALID_SUFFIX_CHAR:				\	  error ((Exit_code), 0, "invalid character following %s `%s'",	\		 (Argument_type_string), (Str));			\	  break;							\									\	case LONGINT_OVERFLOW:						\	  error ((Exit_code), 0, "%s `%s' too large",			\		 (Argument_type_string), (Str));			\	  break;							\	}								\    }									\  while (0)# define STRTOL_FATAL_ERROR(Str, Argument_type_string, Err)		\  _STRTOL_ERROR (2, Str, Argument_type_string, Err)# define STRTOL_FAIL_WARN(Str, Argument_type_string, Err)		\  _STRTOL_ERROR (0, Str, Argument_type_string, Err)#endif /* not XSTRTOL_H_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -