📄 aa.h
字号:
/* * $Id: aa.h 1339 2006-09-21 19:46:28Z tbailey $ * * $Log$ * Revision 1.1 2005/07/29 18:34:01 nadya * Initial revision * *//**********************************************************************//* associative array data structures*//**********************************************************************/#ifndef AA_H#define AA_H#include <macros.h>#define AA_BUFSIZE 1000/* types *//* names of associative array value types */typedef enum {Int, Double, String} TYPE_NAME;/* union of types for values in associative arrays */typedef union value VALUE;union value { int i; double d; char *s;};/* associative array entry */typedef struct aa_entry AA_ENTRY; struct aa_entry { char *key; /* key */ TYPE_NAME value_type; /* type of value */ VALUE value; /* value */ AA_ENTRY *next; /* link to collision list */};/* associative array */typedef struct aa *AA;struct aa { int n; /* number of bins in hash table */ AA_ENTRY **table; /* array of entry pointers */};/* functions */extern AA aa_create( int n /* size of associative array */);extern void aa_destroy( AA aa /* associative array to destroy */);extern AA_ENTRY *aa_lookup( AA aa, /* the associative array */ char *key /* key */);extern void aa_assign( AA aa, /* the associative array */ char *key, /* key */ TYPE_NAME value_type, /* type of value to assign */ VALUE value /* value to assign */);extern char **aa_keys( AA aa /* the associative array */);/* macros *//* look up the value of a given type in an associative array */#define aa_get_int(aa, key) ( (aa_lookup((aa), (key)))->value.i )#define aa_get_double(aa, key) ( (aa_lookup((aa), (key)))->value.d )#define aa_get_string(aa, key) ( (aa_lookup((aa), (key)))->value.s )/* assign the value of a given type to an associative array key */#define aa_put_int(aa, key, value) { \ VALUE val; \ val.i = value; \ aa_assign(aa, key, Int, val); \}#define aa_put_double(aa, key, value) { \ VALUE val; \ val.d = value; \ aa_assign(aa, key, Double, val); \}#define aa_put_string(aa, key, value) { \ VALUE val; \ val.s = value; \ aa_assign(aa, key, String, val); \}/* see if a key is defined in an associative array */#define aa_defined(aa, key) ( aa_lookup((aa), (key)) ? TRUE : FALSE )#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -