微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > c语言编程多个文件的组织关系错误

c语言编程多个文件的组织关系错误

时间:10-02 整理:3721RD 点击:

c语言编程多个文件的组织关系错误

因为keyboard.c,display.c中需要reg52.h,为皮面重定义我建了

reg.h中有:

#include <reg52.h>

已知:

main.c中:

#include "includes.h";

=====================

includes.h中:

#include "reg.h"

#include "display.h"

#include "keyboard.h"

#include <stdio.h>

=====================

display.h中:

#include "reg.h"

#define DataPort P1

sbit LATCH1=P0^2;

sbit LATCH2=P0^3;

=====================

keyboard.h中:

#include "reg.h"

#define KeyPort P2

=====================


结构示意


uvsion出错提示


这里只调用了头文件,没必要重复调用,只要主程序里的includes.h中:按先后顺序排就可以了,比如大家都调用了#include "reg.h",就把#include "reg.h"放在最前面,如果假设#include "display.h"中又调用#include "keyboard.h"中的定义变量或者函数,又把#include "keyboard.h"放在最前面,以此类推。

同一个.C文件下的头文件不要重复,.C里的后一个头文件可以直接引用前一个头文件的定义

可以在头文件定义时加上防止重定义的宏

如果在编程中为了漏加头文件或重复添加头文件,可以这样做:
1.每一个C文件都有一个对应的头文件,头文件都要有防重复编译的宏。每一个C文件只包含这个文件的头文件。
2.整个工程文件必然有一个main函数所在的C文件,在这个C文件所在的头文件中,包含所有.C文件对应的头文件。
3.每一个独立的.c文件对应的头文件只需包含main函数所在C文件的头文件即可。

谢谢您的回答,你的回复对我很有帮助!

谢谢您的回答,你的回复对我很有帮助!

谢谢您的回答,你的回复对我很有帮助!

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top