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

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-19 19:38:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-19 19:38:06       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-19 19:38:06       58 阅读
  4. Python语言-面向对象

    2024-07-19 19:38:06       69 阅读

热门阅读

  1. vllm安装踩坑

    2024-07-19 19:38:06       23 阅读
  2. 探索Eureka的高级用法:在服务中实现分布式锁

    2024-07-19 19:38:06       18 阅读
  3. ArkTS语法---运算符及语句

    2024-07-19 19:38:06       22 阅读
  4. Python_封装和继承

    2024-07-19 19:38:06       15 阅读
  5. SQL Server 和 MySQL 的主要区别

    2024-07-19 19:38:06       20 阅读
  6. 益铭祥元宇宙

    2024-07-19 19:38:06       19 阅读
  7. 计算机视觉7 kag比赛

    2024-07-19 19:38:06       19 阅读
  8. 《管理表格系统》开发心得

    2024-07-19 19:38:06       21 阅读
  9. gdb 的常用指令

    2024-07-19 19:38:06       20 阅读
  10. 矩形加矩形求和

    2024-07-19 19:38:06       20 阅读
  11. TCP协议

    TCP协议

    2024-07-19 19:38:06      19 阅读
  12. 深入探讨:Node.js、Vue、SSH服务与SSH免密登录

    2024-07-19 19:38:06       21 阅读
  13. GitHub每日最火火火项目(7.18)

    2024-07-19 19:38:06       18 阅读