当前位置: 首页 > news >正文

C++是否可以使用.获取union、struct中的成员变量的地址

C++可以使用.获取union、struct中的成员变量的地址

示例代码如下所示

#include <stdio.h>
#include <stdint.h>struct u128 { uint64_t v64; uint64_t v0; };int main() {union { unsigned __int128 ui; struct u128 s; } union_temp_m128;void* p1 = &union_temp_m128;void* p2 = &(union_temp_m128.ui);void* p3 = &(union_temp_m128.ui);void* p4 = &(union_temp_m128.s.v64);void* p5 = &(union_temp_m128.s.v0);printf("p1: %p\n", &union_temp_m128);printf("p2: %p\n", &(union_temp_m128.ui));printf("p3: %p\n", &(union_temp_m128.s));printf("p4: %p\n", &(union_temp_m128.s.v64));printf("p5: %p\n", &(union_temp_m128.s.v0));if(p1==p2) {printf("p1==p2\n");}else {printf("p1!=p2\n");}if(p1==p3) {printf("p1==p3\n");}else {printf("p1!=p3\n");}if(p1==p4) {printf("p1==p4\n");}else {printf("p1!=p4\n");}if(p1==p5) {printf("p1==p5\n");}else {printf("p1!=p5\n");}return 0;
}

运行结果如下所示

p1: 0x7ffeb8fe8380
p2: 0x7ffeb8fe8380
p3: 0x7ffeb8fe8380
p4: 0x7ffeb8fe8380
p5: 0x7ffeb8fe8388
p1==p2
p1==p3
p1==p4
p1!=p5

http://www.lryc.cn/news/400459.html

相关文章:

  • 【前端】包管理器:npm、Yarn 和 pnpm 的全面比较
  • C++ 类和对象 赋值运算符重载
  • 【Python实战因果推断】35_双重差分6
  • 【HarmonyOS】关于官方推荐的组件级路由Navigation的心得体会
  • Spring中事件监听器
  • 案例|LabVIEW连接S7-1200PLC
  • 正点原子STM32(基于HAL库)6
  • flutter Android端权限
  • ant design form动态增减表单项Form.List如何进行动态校验规则
  • 7.16做题总结
  • unity使用 MQTT复现plant simulate仿真
  • MATLAB激光通信和-积消息传递算法(Python图形模型算法)模拟调制
  • 初识HTML
  • 基于Rspack实现大仓应用构建提效实践|得物技术
  • 什么是MOW,以bitget钱包为例
  • pytorch说明
  • AI语音机器人是否可以设计开放式问题
  • ModuleNotFoundError: No module named
  • 【操作系统】进程管理——用信号量机制解决问题,以生产者-消费者问题为例(个人笔记)
  • 算法刷题笔记 KMP字符串(C++实现,并给出了求next数组的独家简单理解方式)
  • SpringCloud架构师面试
  • C语言 | Leetcode C语言题解之第228题汇总区间
  • 入职前回顾一下git-01
  • this指向解析
  • 学习小记-Nacos的服务注册与发现原理
  • 视频号矩阵系统源码,实现AI自动生成文案和自动回复私信评论,支持多个短视频平台
  • [Spring] SpringBoot基本配置与快速上手
  • tomcat的优化、动静分离
  • Python与自动化脚本编写
  • 树与二叉树