#ifndef _BOX_H_#define _BOX_H_.............#endif
这段代码,作用是防止头文件被重复的包含,重复包含,这些函数就会被重复的申明,编译器将报错。
第一行 检测 如果这个 常量 _BOX_H_ 没有被定义了,就定义这个变量,然后 下面的函数声明 就会被编译进去,这样的话,如果第二次再包含了这个头文件,会再次检测 这个常量 _BOX_H_是否被定义的时候 ,由于已经定义过了,这段函数声明 就不会被编译进去,保证了这段头文件代码 只能被包含一次。
我把一些公共的类型都定义在 config.h 头文件中,在每个文件中都包含,比如 kdir 这些枚举类型就是声明在 config.h中。
好了,头文件有了,接下来看对应的源文件 box.c
01. #include <config.h>02. 03. /*
04. 函数功能:箱子是否可以移动,返回0表示不可移动05. */
06. static int can_move(box_t* box, dir_t dir)07. {
08. int x=0,y=0; //保存 在x y方向上的移动距离09.
10. switch(dir)11.
{