cmn-clib(CommonLibraryForC)
C言語共通ライブラリ
 全て データ構造 ファイル 関数 変数 型定義 列挙型 列挙値 マクロ定義
Common.h
[詳解]
1 
12 #ifndef CMNCLIB_COMMON_H
13 #define CMNCLIB_COMMON_H
14 
15 #include <stddef.h>
16 
17 /* パフォーマンス優先設定 */
18 /*
19 #define CMN_CLIB_HI_PERFORMANCE 1
20 */
21 #ifdef NDEBUG
22  #ifndef CMN_CLIB_HI_PERFORMANCE
23  #define CMN_CLIB_HI_PERFORMANCE 1
24  #endif
25 #endif
26 
27 /* 真偽値 */
28 #ifndef True
29  #define True 1
30 #endif
31 #ifndef False
32  #define False 0
33 #endif
34 
36 typedef enum enmCHARSET {
37  CHARSET_ASCII,
38  CHARSET_SHIFT_JIS,
39  CHARSET_UTF8,
40 } CHARSET;
41 
43 #define ARRAY_LENGTH(x) (sizeof(x) / sizeof(*x))
44 
45 /* OS識別 */
46 #define PRATFORM_WINDOWS 1
47 #define PRATFORM_LINUX 2
48 #ifdef _WIN32
49  #define PRATFORM PRATFORM_WINDOWS
50 #else
51  #define PRATFORM PRATFORM_LINUX
52 #endif
53 
55 #define IS_PRATFORM_WINDOWS() (PRATFORM == PRATFORM_WINDOWS)
56 
57 #define IS_PRATFORM_LINUX() (PRATFORM == PRATFORM_LINUX)
58 
59 /* Winsock2のための設定。CmnNetでwinsock2.hを使用するため、windows.hから旧バージョンのwinsock.hが読み込まれないようにする。 */
60 #if IS_PRATFORM_WINDOWS()
61  #define _WINSOCKAPI_ /* Prevent includsion of winsock.h in windows.h */
62 #endif
63 
64 /* DLL使用かLIB使用かによるプロトタイプ切り替え */
65 #ifdef _USRDLL
66  /* DLL作成 */
67  #define D_EXTERN extern __declspec(dllexport)
68 #else
69  #ifdef COMMON_DLL_IMPORT
70  /* DLL使用 */
71  #define D_EXTERN extern __declspec(dllimport)
72  #else
73  /* LIB使用 */
74  #define D_EXTERN extern
75  #endif
76 #endif
77 
78 #endif /* CMNCLIB_COMMON_H */
79 
enum enmCHARSET CHARSET
enmCHARSET
Definition: Common.h:36