单片机中宏定义与重新定义数据类型(typedef)区别,并且各自的优势(初学单片机)

#defineSKYunsignedchartypedefunsignedcharSKY... #define SKY unsigned char
typedef unsigned char SKY
展开
 我来答
潇洒_Xs
2012-08-29
知道答主
回答量:12
采纳率:0%
帮助的人:9.5万
展开全部
1) #define宏定义有一个特别的长处:可以使用 #ifdef ,#ifndef等来进行逻辑判断,还可以使用#undef来取消定义。

2) typedef也有一个特别的长处:它符合范围规则,使用typedef定义的变量类型其作用范围限制在所定义的函数或者文件内(取决于此变量定义的位置),而宏定义则没有这种特性。

3)typedef比#define更安全。举个例子:
typedef char* pStr1;

  #define pStr2 char *

  pStr1 s1, s2;

  pStr2 s3, s4;

  在上述的变量定义中,s1、s2、s3都被定义为char *,而s4则定义成了char,不是我们所预期的指针变量,根本原因就在于#define只是简单的字符串替换而typedef则是为一个类型起新名字。
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
我是Talentbdd
2012-09-01 · TA获得超过566个赞
知道小有建树答主
回答量:548
采纳率:0%
帮助的人:320万
展开全部
#define只是简单的字符串替换而typedef则是为一个类型起新名字。
我们提倡使用后者。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tierain
2012-08-27 · 超过20用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:45.3万
展开全部
我也想问这个问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式