【答疑释惑】结构体字节数如何计算

1 C语言中一个结构体在内存中占的字节数如何计算? 先看下面一个结构体:

struct stru {

int a;

char c;

};

那么这个结构体在内存中几个字节呢?初学者可能说,int是4个字节,char是1个字节,那么这个结构体就是5个字节。很遗憾,这个结果是错误的。

其实这个结构体的长度是8个字节。

这牵涉到一个结构体字节对齐问题 ,具体结构体为什么要字节对齐,又是如何对齐的呢?

稍后我们会在我们的网站上详细讲解下结构体字节对齐的问题。请关注我们的网站:www.coderonline.net

2 问:如果有两个类,分别在两个头文件中定义,但是这个两个类中的成员函数分别要引用对方,但是头文件一但互相包含,就会出现C2061错误,不识别类,我问我同学,他说他用互相友元解决了。我想问一下为什么友元可以。

答:其实这是类的封装性造成的,因为友元破坏了封装性所以可以。 问:有没有别的办法,不使用友元 答:对方对象调用对方公共方法

原文发布于微信公众号 - 程序员互动联盟(coder_online)

原文发表时间:2015-07-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏无所事事者爱嘲笑

获取url参数的精简代码

1054
来自专栏Linux驱动

汇编指令-bic(位清除)、orr(位或)(3)

1. bic  (Bit Clear)位清除指令 bic指令的格式为: bic{条件}{S}  Rd,Rn,operand  bic指令将Rn 的值与操作数op...

2056
来自专栏猿人谷

寻找和为定值的两个数

题目:输入一个数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)。如果有多对数字的和等于输入的数字,输出任意一对即...

2177
来自专栏数据结构与算法

Tarjan中栈的分析与SLT栈的实现

首先看一下手写的栈: 1 do{ 2 printf("%d ",stack[index]); 3 visit[stack[index]]=0; ...

3106
来自专栏信安之路

php 弱类型问题

php 是一门简单而强大的语言,提供了很多 Web 适用的语言特性,其中就包括了变量弱类型,在弱类型机制下,你能够给一个变量赋任意类型的值。

800
来自专栏Java技术分享

Redis常用命令整理

doc 环境下使用命令:     keys 命令         ?    匹配一个字符         *    匹配任意个(包括0个)字符         ...

2007
来自专栏北京马哥教育

Linux Shell 文本处理工具集锦

本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;...

3637
来自专栏小白客

Python基础学习-if 语句

一:条件测试 1:检查是否相等 例: ? 输出: ? 2:使用and & or检车多个条件 例: ? 输出: ? 3:检查特定值是否包含在列表中 例: ? 输...

3286
来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch【正则搜索】分析&实践

在ES中有很多使用不是很频繁的查询,可以达到一些特殊的效果。比如基于行为路径的漏斗模型。本篇就从使用上讲述一下正则表达式查询的用法。 Regexp Que...

1908
来自专栏架构师之路

一分钟sed入门(一分钟系列)

1.简介 sed是一种行编辑器,它一次处理一行内容。 2.sed调用方式 sed [options] 'command' file(s) sed [option...

37211

扫描关注云+社区