使用#include防范. int member;此处grandfather.h第一次被引入时会定义巨集H_GRANDFATHER。当father.h再次引入grandfather.h时，codice_3测试失败，编译器会直接跳到codice_4的部分，也避免了第二次定义codice_2结构。程式也就能够正常编译。
困难.为了让#include防范正确运作，每个防范都必须检验并且有条件地设定不同的前置处理巨集。因此，使用了#include防范的