Hengband  2.1.4
 全て データ構造 ファイル 関数 変数 型定義 マクロ定義 ページ
z-util.h
説明を見る。
1 /* File z-util.h */
2 
3 /*
4  * Copyright (c) 1997 Ben Harrison
5  *
6  * This software may be copied and distributed for educational, research,
7  * and not for profit purposes provided that this copyright and statement
8  * are included in all such copies.
9  */
10 
11 #ifndef INCLUDED_Z_UTIL_H
12 #define INCLUDED_Z_UTIL_H
13 
14 #include "h-basic.h"
15 
16 
17 /*
18  * Extremely basic stuff, like global temp and constant variables.
19  * Also, some very useful low level functions, such as "streq()".
20  * All variables and functions in this file are "addressable".
21  */
22 
23 
24 /**** Available variables ****/
25 
26 /* A cptr to the name of the program */
27 extern cptr argv0;
28 
29 
30 /* Aux functions */
31 extern void (*plog_aux)(cptr);
32 extern void (*quit_aux)(cptr);
33 extern void (*core_aux)(cptr);
34 
35 
36 /**** Available Functions ****/
37 
38 /* Test equality, prefix, suffix */
39 extern bool streq(cptr s, cptr t);
40 extern bool prefix(cptr s, cptr t);
41 extern bool suffix(cptr s, cptr t);
42 
43 
44 /* Print an error message */
45 extern void plog(cptr str);
46 
47 /* Exit, with optional message */
48 extern void quit(cptr str);
49 
50 /* Dump core, with optional message */
51 extern void core(cptr str);
52 
53 
54 /* 64-bit integer operations */
55 #define s64b_LSHIFT(V1, V2, N) {V1 = (V1<<(N)) | (V2>>(32-(N))); V2 <<= (N);}
56 #define s64b_RSHIFT(V1, V2, N) {V2 = (V1<<(32-(N))) | (V2>>(N)); V1 >>= (N);}
57 extern void s64b_add(s32b *A1, u32b *A2, s32b B1, u32b B2);
58 extern void s64b_sub(s32b *A1, u32b *A2, s32b B1, u32b B2);
59 extern int s64b_cmp(s32b A1, u32b A2, s32b B1, u32b B2);
60 extern void s64b_mul(s32b *A1, u32b *A2, s32b B1, u32b B2);
61 extern void s64b_div(s32b *A1, u32b *A2, s32b B1, u32b B2);
62 extern void s64b_mod(s32b *A1, u32b *A2, s32b B1, u32b B2);
63 
64 
65 #endif
66 
bool streq(cptr a, cptr b)
Definition: z-util.c:25
void(* plog_aux)(cptr)
Definition: z-util.c:68
const char * cptr
文字列定数用ポインタ定義 / A simple pointer (to unmodifiable strings)
Definition: h-type.h:46
void plog(cptr str)
Definition: z-util.c:74
void quit(cptr str)
Definition: z-util.c:96
void s64b_add(s32b *A1, u32b *A2, s32b B1, u32b B2)
Definition: z-util.c:146
cptr argv0
Definition: z-util.c:19
変愚時追加された基本事項のヘッダーファイル / The most basic &quot;include&quot; file.
void(* quit_aux)(cptr)
Definition: z-util.c:88
void s64b_mul(s32b *A1, u32b *A2, s32b B1, u32b B2)
Definition: z-util.c:182
signed long s32b
Definition: h-type.h:101
void s64b_sub(s32b *A1, u32b *A2, s32b B1, u32b B2)
Definition: z-util.c:159
bool suffix(cptr s, cptr t)
Definition: z-util.c:34
bool prefix(cptr s, cptr t)
Definition: z-util.c:50
unsigned long u32b
Definition: h-type.h:102
int s64b_cmp(s32b A1, u32b A2, s32b B1, u32b B2)
Definition: z-util.c:202
void s64b_div(s32b *A1, u32b *A2, s32b B1, u32b B2)
Definition: z-util.c:216
void s64b_mod(s32b *A1, u32b *A2, s32b B1, u32b B2)
Definition: z-util.c:259
void core(cptr str)
Definition: z-util.c:125
void(* core_aux)(cptr)
Definition: z-util.c:119