keil编译时发生一连串#101 error问题
出问题程式码範例
#include <stdio.h>#include <stdlib.h>... // 标头档#define Result_TIMOUT 3#define Result_INTIAL 0#define Result_ERROR 1... // 预处理typedef enum{ MD_INIT, HARDWARE_CHECK, FILESYSTEM, BS_SEARCH, BS_REGISTER, BS_REG_CHK, ME_FC_INIT,ME_SOCKET, ME_READY}STATUS_MACHINE_INDEX;... // struct, enum, unionextern md_Socket_CB SocketOpen_CB;extern md_Socket_CB SocketClose_CB;... // 外部变量等
解决方法
使用条件编译来防止头文件被重複包含,以上述程式码为例
#ifndef __MODEM_H__#define __MODEM_H__#include <stdio.h>#include <stdlib.h>... // 标头档#define Result_TIMOUT 3#define Result_INTIAL 0#define Result_ERROR 1... // 预处理typedef enum{ MD_INIT, HARDWARE_CHECK, FILESYSTEM, BS_SEARCH, BS_REGISTER, BS_REG_CHK, ME_FC_INIT,ME_SOCKET, ME_READY}STATUS_MACHINE_INDEX;... // struct, enum, unionextern md_Socket_CB SocketOpen_CB;extern md_Socket_CB SocketClose_CB;... // 外部变量等#endif