前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【C语言】错题本(2)

【C语言】错题本(2)

作者头像
修修修也
发布2024-04-01 15:05:03
430
发布2024-04-01 15:05:03
举报

题目:

将题目代码粘贴在下面便于分析:

代码语言:javascript
复制
#define MAX_SIZE A+B
struct _Record_Struct
{
  unsigned char Env_Alarm_ID : 4;
  unsigned char Para1 : 2;
  unsigned char state;
  unsigned char avail : 1;

}*Env_Alarm_Record;

struct _Record_Struct *pointer = (struct _Record_Struct*)malloc(sizeof(struct _Record_Struct) * MAX_SIZE);

错误选型:B

正确选择:D

题目分析:

也即最后malloc(     ),括号中的表达式为(3*2+3),等于9个字节.

注意!宏在代码中替换表达式时就是原样替换,不会因为宏定义的整体就替换成带括号的表达式,就像本题,宏替换后的表达式为:

代码语言:javascript
复制
#define MAX_SIZE A+B

malloc(sizeof(struct _Record_Struct) * MAX_SIZE);

//宏替换后:

malloc(sizeof(struct _Record_Struct) * 2 + 3 );

//而不是:

malloc(sizeof(struct _Record_Struct) * (2 + 3) );
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-09-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档