头文件定义数据
头文件如果声明函数,变量 ,要加上
#ifndef __????(头文件名称)_H__
#define __????(头文件名称)_H__
。。。。。。。。
#endif
这样在多个C文件包含时候,定义过一次后,就不会再定义
但是如果是定义数据,struct pybmindex pydz[]={{"a",1},{"o",2},{"e",3},{"ai",47},{"ei",5},{"er",6},{"ao",7},{"ou",8},{"an",9},{"en",10},{"ang",11}};
多个C文件包含时候,都会定义一遍,就会导致过定义。
所以最好 头文件 用来声明(函数、结构体等),不用来定义数据
优先级问题
struct pybmindex { unsigned char *py; unsigned char bm;};
struct pybmindex pydz[]={{"a",1},{"o",2},{"e",3},{"ai",47},{"ei",5},{"er",6},{"ao",7},{"ou",8},{"an",9},{"en",10},{"ang",11}};
char p=*((*(ymtable+3)).py+1)
与 char p=*(*(ymtable+3)).py+1
第一个p=i,第二级是先.py偏移1后再取地址里值,第二个p=e+1是先.py再取地址里值最后加1