【C语言】错题本(2)
【摘要】 【C语言】错题本(2) 题目:编辑将题目代码粘贴在下面便于分析:#define MAX_SIZE A+Bstruct _Record_Struct{unsigned char Env_Alarm_ID : 4;unsigned char Para1 : 2;unsigned char state;unsigned char avail : 1;}*Env_Alarm_Record;str...
【C语言】错题本(2)
题目:编辑
将题目代码粘贴在下面便于分析:
#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个字节.
注意!宏在代码中替换表达式时就是原样替换,不会因为宏定义的整体就替换成带括号的表达式,就像本题,宏替换后的表达式为:
#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) );
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)