月度归档:2015年12月

linux 控制台显示中文乱码

linux 控制台显示乱码

linux 语言编码设置在/etc/sysconfig/i18n文件中。建议设置UTF-8
全局语言编码设置具体如下,这个是针对所有的语言编码设置(包括控制台,窗体标题,GUI内容显示等等)

#vi /etc/sysconfig/i18n

在文件中添加如下代码:

LANG="zh_CN.UTF-8"

下面针对控制台设置如下

#vi ~/bash_profile

将LANG代码更改成如下代码:

LANG=zh_CN.UTF-8
export LANG

简单哈希表(hash table c)

hash表,有时候也被称为散列表。

引自wiki: 散列表(Hash table,也叫哈希表),是根据关键字(Key value)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。
下面我们可以写一个简单的hash操作代码。

定义哈希表数据类型

/* hash.h */
#include <stdbool.h>

#ifndef HASH_H
#define HASH_H

typedef struct _NODE {
        int data;
        struct _NODE *next;
} NODE;

typedef struct _HASH_TABLE {
        NODE *value[10];
} HASH_TABLE;

HASH_TABLE *create_hash_table(void);
NODE *find_data_in_hash(HASH_TABLE *pHashTab, int data);
void print_hash_table(HASH_TABLE *pHashTab);
bool insert_data_into_hash(HASH_TABLE *pHashTab, int data);
bool delete_data_from_hash(HASH_TABLE *pHashTab, int data);
bool delete_idx_data_from_hash(HASH_TABLE *pHashTab, int idx);
bool delete_all_data_from_hash(HASH_TABLE *pHashTab);
bool reset_hash_table(HASH_TABLE *pHashTab);
bool destroy_hash_table(HASH_TABLE **ppHashTab);

#endif//HASH_H

继续阅读

C数据类型的DWORD

C数据类型的长度

类型  ILP32(位数)     LP64(位数)
char        8            8
short      16            16
int        32            32
long       32            64
long long  64            64
point      32            64

宏定义

    WORD       ->   unsigned   short 
    DWORD      ->   unsigned   int 
    LPVOID     ->   void   * 
    UINT       ->   unsigned   int