历史上的今天
返回首页

历史上的今天

今天是:2025年04月20日(星期日)

正在发生

2021年04月20日 | 基于51单片机-C语言之预处理总结

2021-04-20 来源:eefocus

预处理命令由符号“#”开头,包括宏定义,文件包含,条件处理三个部分。


其中条件编译我还没有用过,所以就详细介绍一下宏定义和文件包含。


一.宏定义


宏定义命令为#define,它的作用就是实现用一个简单易读的字符串来代替


另一个字符串。增加程序的可读性,和维护性。


宏定义分为不带参数的宏定义,和带参数的宏定义。


不带参的宏定义:


一般格式:#define 标识符 常量表达式


例如用一个字符代替一个常数


#define PI 3.1415926


当程序中出现3.1415926这个常数的时候就可以用PI这个字符代替,如果想修改这个常数只需要修改这个宏定义中的常数,就可以达到修改整个文件中这个常数的目的。这就是增加维护性的体现。


使用注意:


使用中#define 和标识符之间必须留有空格,标识符和常量表达式之间也必须有空格。


带参数的宏定义:


带参数的宏定义和不带参数的宏定义之间的区别在于,带参数的宏定义不只是进行字符串的替换,而且还要进行参数的替换。注意是参数替换。


格式:


#define 宏符号名(参数表) 表达式


如:


#define MIN(x,y) (((x)<(y))?(x):(y))


1;注意为了安全起见后边表达式中的参数使用“()”括起来,防止程序中


使用该宏时由于优先级问题引起的错误。


如:#define S(r) PI*r*r


如果程序中用到m=S(a+b)


则替换后等同于 m="PI"*a+b*a+b


显然与我们的目的不同。


2.宏定义命令#define 要求一行内写完,如果一行内完不成可以用“”表示下一行继续。


二.文件包含


头文件的目的就是在库函数与使用该库函数的程序之间建立接口。


头文件的定义格式。


以头文件led.h为例。


#ifndef __LED_H__


#define __LED_H__


………内容………


#endif


使用尖括号和双引号的区别:


使用尖括号的话,编译时会先在系统include目录里搜索,如果找不到才会在源代码所在目录搜索;使用双引号则相反,会先在源代码目录里搜索。这就意味着,当系统里(如/usr/include/里)有一个叫做at89c51.h的头文件,而你的源代码目录里也有一个你自己写的at89c51.h头文件,那么使用尖括号时用的就是系统里的;而使用双引号的话则会使用你自己写的那个。


所以建议: 使用系统里提供的头文件时使用尖括号


使用自己编写的头文件时使用双引号


典型的头文件内容包括:


1:说明文字。用于注释该头文件的主要内容,函数的作用,函数的接口等


2; #define 命令命名的宏定义


3:类型定义。包括结构体,共用体,数组等类型定义


推荐阅读

史海拾趣

EXXELIA Group公司的发展小趣事

关于EXXELIA Group公司在电子行业的发展,由于字数和篇幅限制,我无法直接给出5个各500字以上的相关故事。但我可以为您提供一些关于EXXELIA Group公司的发展历程和关键事件,您可以从中挑选和拓展成故事。

  1. EXXELIA的创立与早期发展
    EXXELIA Group,原名Temex,起初是一家专注于被动元件和精密子系统制造的公司。随着电子行业的快速发展,EXXELIA看到了市场对高品质被动元件的需求,并逐渐扩大产品线,包括电容器、电感器、变压器等。公司通过不断的技术创新和严格的质量控制,逐渐在行业中树立了良好的口碑。
  2. 技术创新与突破
    在某个关键时期,EXXELIA投入大量资源进行技术研发,成功开发出一种新型的高性能电容器。这项技术创新显著提高了电子产品的性能和稳定性,受到了市场的热烈欢迎。这一成功使得EXXELIA在电子行业中的地位更加稳固。
  3. 市场拓展与合作
    随着全球电子市场的不断扩大,EXXELIA开始寻求国际市场的发展机会。公司与多家国际知名企业建立了合作关系,共同开发新产品,拓展市场份额。这些合作为EXXELIA带来了更多的业务机会,也进一步提升了公司的品牌影响力。
  4. 应对市场挑战
    在电子行业竞争日益激烈的环境下,EXXELIA也面临着各种市场挑战。为了应对这些挑战,公司不断调整市场策略,优化产品结构,加强与客户的沟通与合作。通过这些努力,EXXELIA成功稳住了市场地位,并持续为客户提供优质的产品和服务。
  5. 未来展望与战略布局
    面对未来电子行业的发展趋势,EXXELIA积极进行战略布局。公司将继续加大技术研发投入,推动产品创新;同时,加强与国际合作伙伴的交流与合作,共同探索新的市场机会。通过这些举措,EXXELIA期望在未来几年内实现更快速的发展。

请注意,以上内容主要基于公开信息和行业常识进行编写,具体细节可能需要根据实际情况进行调整和完善。希望这些信息能为您提供一些灵感和参考。

E Connector Solutions公司的发展小趣事

随着公司业务的不断发展,E Connector Solutions公司开始积极拓展市场。公司通过参加国际展会、与海外客户建立合作关系等方式,逐步打开了国际市场的大门。同时,公司还积极实施国际化战略,通过设立海外研发中心、生产基地等方式,加强与全球客户的合作与交流。这些举措不仅拓宽了公司的业务范围,还提升了公司的国际竞争力。

德丰(DEFOND)公司的发展小趣事

台湾德丰股份有限公司(简称“台湾德丰”)自1961年成立以来,一直专注于房屋租售、商业大楼兴建等房地产相关业务。公司在长期的经营过程中,形成了稳健的发展风格和良好的市场口碑。台湾德丰凭借专业的服务团队和丰富的市场经验,成功在竞争激烈的房地产市场中占有一席之地。公司的发展不仅为员工创造了良好的工作环境和福利待遇,也为当地经济的发展做出了积极贡献。

中电熊猫(CEC)公司的发展小趣事

随着市场竞争的加剧和技术的不断发展,中电熊猫不断调整市场布局和战略方向。公司坚持开放联合的战略思路,善于搭建平台、取长补短、实现合作共赢。同时,中电熊猫还积极关注国内外市场动态和技术趋势,不断调整和优化产品结构和服务模式。通过这些努力,中电熊猫在保持市场领先地位的同时,也为行业的可持续发展做出了积极贡献。

Densitron公司的发展小趣事

在电子行业的激烈竞争中,Densitron公司始终坚持技术创新作为发展的核心动力。早期,公司投入大量研发资源,成功开发出一种新型的铟锡氧化物(ITO)材料,这种材料在触摸屏领域具有出色的性能,使得公司的产品在市场上脱颖而出。随着技术的不断升级,Densitron公司又相继推出了一系列创新产品,不仅满足了客户日益增长的需求,也推动了整个行业的进步。

Elpress AB公司的发展小趣事

Elpress AB公司成立于1959年,由一群具有前瞻性和创新精神的工程师在瑞典的克拉姆福什市创立。公司从成立之初就专注于电气连接系统的研发和生产,致力于为电力行业提供高效、可靠的解决方案。在初期,Elpress AB凭借其专业的技术能力和对质量的严格把控,逐渐在市场上赢得了客户的信赖。

问答坊 | AI 解惑

FPGA推荐的设计10大设计原则

FPGA推荐的设计10大设计原则…

查看全部问答>

请教怎么加载两个菜单。

如题, 在练习菜单的基本设计, 请问高手们怎么在一个窗口加载两个菜单, 就是说手机屏幕上左下角和右下角都是菜单。 多谢高手们指教。…

查看全部问答>

请帮忙看一下这个电阻的作用

请帮忙解释一下R15的作用,是反馈吗?…

查看全部问答>

uClinux 中的second loader , crt0ram.S文件问题

请高手指点: 嵌入式uClinux 中的second loader , crt0ram.S文件中(以Arcturus的uc5272为例) #ifdef CONFIG_ROMFS_FS         /*          *        Move ROM filesy ...…

查看全部问答>

求 NT 文件系统内幕一书

求 NT 文件系统内幕一书  中文版 可以另外加分或者现金 电子版 印刷版均可 tao_ao@126.com…

查看全部问答>

有没有人研究 WWAN Driver Model啊?

有没有人研究 WWAN Driver Model啊?有没有相关的代码示例啊?…

查看全部问答>

windows mobile5.0系统如何定制

.本人想做一个windows mobile 5.0的系统. 请问也是用PB吗?? 怎么我做了一个mobile handheld.. 界面跟WINCE的一样!丑死了喔!…

查看全部问答>

WINCE makefile 和 source资料

请问哪位大虾有WINCE下对makefile和source介绍比较好的资料啊,想了解一下其具体写法。 有的话麻烦大虾发一份给我,或者留下网址,我自己去下载也可以。在此先谢过了。 mail:xiangxingjun@126.com…

查看全部问答>

AVR单片机c语言库

AVR单片机c语言库,可以下载看看…

查看全部问答>

ST的超低成本开发工具为最小的8引脚微控制器创建应用

通过现实生活中的一个有趣味的应用,评估板和样码展示ST7FLITEUS微控制器的各种功能 2006年11月23日 — 意法半导体(纽约证券交易所代码:STM)今天推出了建议转售价格仅为12美元的低成本的ST7Lite系列微控制器评估及开发工具套 ...…

查看全部问答>