Keil error: #101: “name“ has already been declared in the cu

keil编译时发生一连串#101 error问题

http://img2.58codes.com/2024/20141393wEmRlQnvZO.png

出问题程式码範例

#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

keil编译成功


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章