• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > keil4编译多头文件程序时重复定义怎么办?

keil4编译多头文件程序时重复定义怎么办?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了keil4下载程序,keil4调试程序,keil4如何调试程序,keil4程序,keil4怎么调试程序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: keil4编译多头文件程序时重复定义怎么办?
描述:

keil4单片机c

初学51单片机,
以前一直把所有程序和声明写在同一个c文件里,
后来被指导,不同模块可以分开编写,方便区分和再利用,
每个模块(如按键,AD,液晶)包括一个c文件和一个h文件,
但是编写过程中发现,不同c文件会共用同一个函数或变量,
这时,如果分别声明、定义,会警告重复定义,
如果只定义一遍,因为多处调用,又会警告函数或变量未定义,
所以不知道到底该怎样编写才能避免这个问题?
今天偶然发现本论坛,觉得很厉害,有很多不懂,求大神解答 keil4编译多头文件程序时重复定义怎么办?


解决方案1:

善用宏定义

#ifndef __GPS_SR87_H 
#define __GPS_SR87_H
//--------------------------------
// Includes
//--------------------------------
#include "Stm32_Init.h"
//--------------------------------
// Private typedef
//--------------------------------
//--------------------------------
// Private define
//--------------------------------
#define GPS_RECV_DATA(addr)       USART1_RecvData(addr)
#define GPS_SEND_DATA(data,len)   USART3_SendData(data, len)
//--------------------------------
// Private macro
//--------------------------------
//--------------------------------
// Private variables
//--------------------------------
//--------------------------------
// Private function prototypes
//--------------------------------
void ChkGpsData(void);
void SendGpsData(void);
#endif // __GPS_SR87_H


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • keil4编译多头文件程序时重复定义怎么办?
  • keil4怎么获取一段程序的运行时间(这里不用调试),必须用代码计算的

相关文章

  • 2017-06-05 请问状态机在通讯中到底起到了什么重要作用?
  • 2017-06-05 AcerTravelMate632XV在windows2003server中的红外驱动
  • 2017-06-05 win2000ddK写的MODEM安装程序如何在XP中用
  • 2017-06-05 现在手边有个实时监控的软件监控电源工作状态要作,有做过的朋友尽快与我联系QQ:108768312!!项目经费面谈
  • 2017-06-05 关于ds18b20一直显示-006的问题
  • 2017-06-05 ip地址查询详细地址现阶段是怎么利用IP地址的?
  • 2017-06-05 平时用的安卓手机支持433MHz的无线数据接收么?
  • 2017-06-05 哪位DX知道往片子里写程序怎么英文翻译呀
  • 2017-06-05 为啥ESP8266做客户端连总连不上服务器,但作为服务器却可以?
  • 2017-06-17数据队列

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 汇编语言上机过程
    • 请教关于USB的问题,,请大大们多多帮忙!!!
    • winCE6用VS2005(C++)编程,在rc文件中拖拽微调按钮,程序直接退出
    • 如何才能开发一个理想的嵌入式人机交互界面?
    • 一个奇怪的问题,关于U盘插入没反应的问题
    • 有关ARM嵌入式主控板推荐
    • 我现在有USB转并口的线我需要去控制并口的每一个PIN脚请各位兄弟给思路
    • 请问我的SOFTICE怎么使用了99%的cpu??
    • 请各位帮帮忙,wince,手持设备,我用的是控件是smartgrid,在扫描时怎么能显示在smartgrid里
    • sim900aGPRS链接服务器,次数越多越出问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有