单片机c语言的define,单片机C语言中define的妙用
单片机C语言中define的妙用
最近一款产品调试时发现了问题,在一起检查一个小伙伴的C程序。问题不大,但暴露了一点问题。
比如:PORTB=0x23; //他的意思是把第5和第2位置1
可是你能一下子看出来第5和第2位置1吗?其实应该是0x24,他并没有发现这个错误,算错了,所以正确的是:
PORTB=0x23;
其实,我们完全可以避免这个错误。
打开我们编译器自带的头文件,比如AVR Tiny13头文件中有如下语句:
# define PB5 5
# define PB4 4
# define PB3 3
# define PB2 2
# define PB1 1
# define PB0 0
看似没什么用,其实大有用处。
PORTB=0x24;就可以写为:
PORTB=(1<
这样,是不是一下子就能看清谁跟谁了?也方便别人阅读。
define的妙用远不止此,但基本的用法简单,要灵活运用,才行。
下面是摘抄自网上的define用法,希望你能掌握并运用。
#define用法
1.简单的define定义
#define MAXTIME 1000
一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写
if(i
编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。
这样的定义看起来类似于普通
单片机c语言的define,单片机C语言中define的妙用相关推荐
- c语言 编译开关用法,C语言中define的使用方法
C语言中define的使用方法 学习了这么多年C语言,说实话对宏自以为了如指掌了,没想到看内核代码的时候还是那么吃力,设备驱动代码中有很多这样或者那样的宏定义,各种define都有哪些学习方法呢?以下 ...
- c语言 define 关键字,c语言中define的一个不常见的用法
一个开源的x86模拟器中的键盘宏 我看不懂对应的代码,我只知道最终的宏_KEY_button这种形式的枚举,比如_KEY_ESCAPE对应的值是1,但是对于这个宏是怎么得出来的不懂,具体来说,第一行中 ...
- c语言define需要分号骂,C语言中define的用法
C语言中define的用法 2016-01-06 15:00 来源: 博客园 define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便. 预处理命令以"#& ...
- 单片机c语言编程下载,单片机C语言编程.doc
单片机C语言编程.doc 单片机C语言编程指令格式 功能简述 字节数 周期 一.数据传送类指令 MOV A, Rn 寄存器送累加器 1 1 MOV Rn,A 累加器送寄存器 1 1 MOV A ,Ri ...
- c语言数组中define,c语言中#define的用法
c语言中#define的用法 C语言中,可以用 #define 定义一个标识符来表示一个常量.其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了. 预编译又叫预处理.预编译 ...
- #define c# 报错_c语言中#define的用法
c语言中#define的用法 C语言中,可以用 #define 定义一个标识符来表示一个常量.其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了. 预编译又叫预处理.预编译 ...
- java可以使用c语言中的输入,c语言中的scanf在java中应该怎么表达,Scanner类。
1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...
- sort在c语言中的作用,c语言中sort的用法详解.docx
c语言中sort的用法详解.docx C语言中SORT的用法详解C语言的学习很多是比较复杂的,那么C语言中SORT的用法的用法你知道吗下面学习啦小编就跟你们详细介绍下C语言中SORT的用法的用法,希望 ...
- c语言用string类型,c语言中的string
1. strlen(char const* s); 函数传入的是c风格字符串(即以'\0'结尾的字符数组),返回的长度为size_t(即unsigned int),其长度不包括'\0'. 2. str ...
最新文章
- Exception in thread main java.lang.Error: 无法解析的编译问题: 	方法 main 不能声明为 static;只能在静态类型或顶级类型中才能声明静态方法
- MYSQL 创建用户1290错误_rhel6 mysql skip-grant-tables 添加用户报错 ERROR 1290
- Docker 入门终极指南:边学边用
- 1105 Spiral Matrix (25 分)【难度: 一般 / 知识点: 模拟】
- 分布式锁的3种实现(数据库、缓存[redis]、Zookeeper)
- linux ls的所有参数,Linux ls命令参数详解
- 我的博客今天6岁298天了,我领取了元老博主徽章
- Java 习题(面向对象)
- 基于JAVA+SpringMVC+MYSQL的在线英语精品课程视频教学平台
- oracle突然挂了服务全部消失,OracleService服务不见了|OracleServiceXE服务没有了
- 华为2288H V5服务器安装win_server_2016问题解决过程
- 为什么机器学习行业的发展离不开 “开源”
- dlna 斐讯r1怎么用_挽救智障——斐讯R1:固件升级、安装DLNA和Soundwire
- 控制工程实践(7)——PID四种类型控制器(之比例控制器P)
- 使用 Charles 对 Android 设备进行 Https 抓包
- 如何下载macOS Ventura、Monterey、Big Sur、Catalina Mojave完整安装程序
- java里面怎么开根号_新手求解呀!!!!!!!怎么开根号,为嘛我开不了
- 甲骨文中间件与主数据管理平台
- 普通数字到科学计数法的转换
- RTX Excption integer divided by zero at loc (proc= thread=)Process image has been *unloaded
热门文章
- 形式语言与自动机——第三章 上下文无关文法与下推自动机
- 2020数学建模医疗和养老保障问题解决办法
- php学到最后,【A0365】[PHP视频教程]新开班布尔教育最后一期PHP 入门到实战视频教程 百度云 网盘...
- 8.22 问题 B: 海岛争霸
- 春日里有skycc营销软件相陪
- Solaris 11中配置基于link的IPMP
- vue实现app下载页面,微信提示,自动识别安卓IOS
- sqli-labs第四关
- numpy ndarray嵌套ndarray浅显理解
- 企业如何选择合适的精益生产方案?