STDX.H
[目次 | マクロ]
1|/**************************************************************************
2|* 1. <<< 標準ライブラリ (StdX) >>>
3|***************************************************************************/
4|
5|#ifndef __STDX_H
6|#define __STDX_H
7|
8|/*----------------------------------------------------------------------
9|[Module Property]
10|name = StdX
11|title = 標準ライブラリ
12|category = 基本型
13|src = stdx.c
14|depend = StdLibs
15|priority =
16|accord =
17|----------------------------------------------------------------------*/
18|
19|
20|/*------------------------------------------------------------------------*/
21|/* 2. <<< 優先ヘッダ >>> */
22|/*------------------------------------------------------------------------*/
23|#ifndef USES_PRIORITY_HEADER
24|/*[START_OF_PRIORITY_HEADER]*/
25|
26|#ifndef USES_STDX
27|#define USES_STDX
28|
29|#ifndef STDLIBS_INCLUDE_STDARG_H
30| #define STDLIBS_INCLUDE_STDARG_H
31|#endif
32|#ifndef STDLIBS_INCLUDE_STDDEF_H
33| #define STDLIBS_INCLUDE_STDDEF_H
34|#endif
35|
36|#define USES_STDX_STDARG
37|
38|#endif
39|
40|/*[END_OF_PRIORITY_HEADER]*/
41|#endif /* USES_PRIORITY_HEADER */
42|
43|
44|
45|/*------------------------------------------------------------------------*/
46|/* 3. <<< モジュール設定 >>> */
47|/*------------------------------------------------------------------------*/
48|#ifndef STDX_SETTING
49|
50| /* [STDX_USE_STDNAME] */
51| /* ユーザの標準関数名を StdX_... に改名するかどうかの設定 */
52| /* 例:ユーザの strlen を StdX_strlen に改名する */
53| #ifdef STDLIBS_NO_STDLIB
54| #ifdef USES_STDLIBS
55| #define STDX_USE_STDNAME
56| #endif
57| #endif
58|
59| /* [STDX_CUT_EXIT_LABEL] */
60| /* 定義すると StdX_exit 関数内で exit ラベルを作らないようにします */
61| /* #define STDX_CUT_EXIT_LABEL */
62|#endif
63|
64|
65|
66|/*------------------------------------------------------------------------*/
67|/* 4. <<< Interface Area ----------------------------------------------- >>> */
68|/*------------------------------------------------------------------------*/
69|#ifdef __cplusplus
70| extern "C" {
71|#endif
72|
73|unsigned StdX_strlen( const char* s );
74|char* StdX_strcpy( char* dst, const char* src );
75|char* StdX_strncpy( char* dst, const char* src, int n );
76|char* StdX_strchr( const char* s, int c );
77|int StdX_strcmp( const char* s, const char* ss );
78|int StdX_stricmp( const char* a, const char* b );
79|void* StdX_memcpy( void* _dec, const void* _src, size_t n );
80|void* StdX_memmove( void* _dec, const void* _src, size_t n );
81|void* StdX_memset( void* _dec, int ch, unsigned n );
82|int StdX_memcmp( const void* a, const void* b, size_t size );
83|#if defined(USES_STDX_STDARG)
84| int StdX_sprintf( char* s, const char* fmt, ... );
85| int StdX_vsprintf( char* s, const char* fmt, va_list va );
86|#endif
87|int StdX_toupper( int );
88|void StdX_srand( unsigned int seed );
89|int StdX_rand(void);
90|#define STDX_RAND_MAX 0x7FFFFFFF
91|
92|#ifdef __cplusplus
93| }
94|#endif
95|
96|
97|/*------------------------------------------------------------------------*/
98|/* 5. <<< Mapping Area ------------------------------------------------- >>> */
99|/*------------------------------------------------------------------------*/
100|#ifdef STDX_USE_STDNAME
101|
102|#define strlen StdX_strlen
103|#define strcpy StdX_strcpy
104|#define strncpy StdX_memcpy
105|#define strchr StdX_strchr
106|#define strcmp StdX_strcmp
107|#define stricmp StdX_stricmp
108|#define toupper StdX_toupper
109|#define memcpy StdX_memcpy
110|#define memmove StdX_memmove
111|#define memset StdX_memset
112|#define memcmp StdX_memcmp
113|#define sprintf StdX_sprintf
114|#define vsprintf StdX_vsprintf
115|
116|
117|#endif
118|
119|
120|
121|/***********************************************************************
122|* 6. <<< [StdX_toupper] >>>
123|************************************************************************/
124|#define StdX_toupper( c ) \
125| ( (c) >= 'a' && (c) <= 'z' ? (c) - 0x20 : (c) )
126|
127|
128|#endif
129|
130|