Keil C51中C语言编程的头文件包含方法
一、首先摘抄一写keil的说明,了解其系统自带的头文件在哪里及如何预处理。
1、
译文:主页/µVision4用户手册
文件夹结构
主页»关于µVision»文件夹结构
安装程序复制开发工具到基础文件夹的子文件夹。默认的基础文件夹包含:C:\Keil。下面的表格列出了所有uVision开发工具的文件夹结构。安装结果可能根据您安装的产品和组件有所变化。
译文:C51开发工具(为经典8051和其扩展种类)
文件夹内容
C:\KEIL\C51\ASM Assembler Source Template and Include files for the Macro Assembler.
C:\KEIL\C51\BIN Executable files of theµVision/C51toolchain.
C:\KEIL\C51\Examples Example programs.
C:\KEIL\C51\FlashMon Configuration files for Flash Monitor and pre-configured versions.
C:\KEIL\C51\HLP Online documentation forµVision/C51.
C:\KEIL\C51\INC为C编译器的包含文件
C:\KEIL\C51\ISD51Files for ISD51In-System Debugger and pre-configured versions.
C:\KEIL\C51\LIB Run-time libraries and CPU startup files.
C:\KEIL\C51\Mon51Configuration files for Monitor-51(for Classic8051Devices).
C:\KEIL\C51\Mon390Configuration files for Monitor-390(for Dallas Contiguous Mode).
C:\KEIL\C51\RtxTiny2RTX51Tiny Version2Real-Time Operation System.
2、
译文:头文件
主页»预处理器»头文件
头文件或包含文件被预处理器包含和处理。它们为你提供了一个方便的方式去声明全局变量、函数原型、声明限制、和宏定义,这些通常在大型的开发工作中贯通始终使用。
#include指令指定要半含的头文件的名字。
3、
#include
主页»预处理器»预处理器指令»#include
#include指令使得C预处理器在编译中包含指定文件的内容,然后继续处理当前文件剩下的内容。#include指令可能用于指定两种类型的头(或包含)文件:系统头文件和用户头文件。
系统头文件如下被包含:
#include<filename>
这些包含文件被包含在\INC\文件夹下。它们是keil开发工具的一部分,且不应该被修改。当一个系统头文件被指定,编译器从下列文件夹按序搜索。
∙INCDIR指令指定的路径。
∙C51INC环境变量指定的路径.
用户头文件如下被包含:
#include"filename"
c编程网站这些包含文件是用户创建的,可能存在于电脑的任何位置。当一个用户头文件被指定,编译器按照如下次序搜索文件夹:∙当前文件夹。
∙源文件夹。
∙INCDIR指令指定的路径。
∙C51INC环境变量指定的路径.
注意:
∙包含文件常常有一个.H的后缀表明它们是头文件。我们推荐你为你的用户头文件使用这套标准。
∙通常,包含文件仅包含变量声明(而不是定义)、宏定义,特殊功能寄存器(Special Function Registers)定义.
∙包含文件可能包含变量定义。然而,你必须确保这样的头文件只包含在你工程的一个C文件里。否则,重复的相同名称的变量可能会被定义,从而导致连接器错误。我们推荐你不要在包含文件里面定义变量或者函数。
∙可能一个函数开始或者结束在一个包含文件内。还有可能把函数和变量定义放置在包含文件内。由于这样的事情可能发生,它们非常混乱,不是养成良好的编写代码习惯。所以,我们不推荐你这样做。
参考Header Files如何在C程序中使用包含文件的完整说明。
二、实例(以STC单片机为例)
1、使用STC-ISP软件,添加MCU型号到keil。
2、打开keil安装目录,到INC文件夹,里面查是否有STC文件夹,正常会出现。
如图:
3、修改STC文件夹内各个头文件内容,添加防止重复包含的语句,主要就是每个文件前加入判断,文件结束加入结束判断。每个文件都要保证有这几句,可以防止重复包含。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。