C语言多继承时子类与基类指针关系,union与struct区别,volatile修饰符作用

本文探讨了C语言中多继承时子类与基类指针的关系,并解释了union与struct的区别,以及volatile修饰符的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言多继承时子类与基类指针关系


C语言多继承时,子类的指针和第一个基类的指针应该是一样的,和第二个基类是不一样的。因为每个父类有一个虚表,子类的虚函数放在第一个父类虚表的最后。


union与struct区别


1)union共用体中的变量公用空间,其大小由内部变量类型所占空间最大的那个决定

2)struct中的内存对齐,以不可分割的变量类型的最大内存为标准对齐内存,其他变量类型都要满足其大小,如果按顺序合并后能满足就将变量类型合并存储,

        如果不能则自己占有一个存储单元。


volatile修饰符


    确保本条指令不会因编译器的优化而省略,且要求每次直接读值。即:防止编译器对代码进行优化。

    一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。

    也就是优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值