重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
B、C、D都分别建一个头文件a.h, b.h, c.h,a.h形如:
我们提供的服务有:成都网站设计、成都网站制作、微信公众号开发、网站优化、网站认证、梅列ssl等。为上千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的梅列网站制作公司
#ifndef _a_h_
#define _a_h_
……
#endif
这样能够避免重复包含,并且函数原型,结构体定义都写在头文件里面,头文件一定不要写函数主体
1)代码涉及3个文件,主函数位于c3.cpp。macro.h定义基本的数据结构,functions定义公用函数。
2)一般不在头文件中定义变量。变量可在引用了头文件的cpp中定义。
macro.h_1
macro.h_2
3)functions.cpp中定义公用的函数。
4)主函数位于c3.cpp
应该是你在2个c文件中都定义了全局的MmiUtil_WaitKeyMenu,可以声明为static,或者改个名字
重复定义是指编译时同一个定义多次给出或者连接时出现多个外部符号(外部函数和全局变量在不同实现文件中重复定义)。
#ifndef...#pragma once这些指令是用于防止同一个头文件在同一个实现文件中多次包含,这只能解决第一种冲突。
你的问题可能是函数或者全局变量的定义在整个程序中重复了。检查头文件中是否有全局变量定义(没有加extern的就是定义),有的话试试添加关键字static,或者吧定义写在.c文件里。从你的图片上来看,头文件里包含了几个指针变量定义,在这些指针变量定义前面添加关键字extern(如果有初始式去掉初始式)强制将定义改为声明,然后随便在一个实现文件中定义这些指针变量。
将全局变量定义或者函数定义放在头文件里容易导致连接错误,不要写这种代码。。。
像结构体这种语法结构可以在不同实现文件中重复出现。
同一个工程中创建了多个main函数
关闭当前工程,另建一个工程后重新编译