zoukankan      html  css  js  c++  java
  • union的代码有点难理解额

    union跟位域都可以节省内存,而且union在某些地方还能起到更好看的效果?

    比如:

    struct  Matrix
    {
        union
        {
            struct
            {
                float  _f11, _f12, _f13, _f21, _f22, _f23, _f31, _f32, _f33;
            };
            float  f[3][3];
        }_matrix;
    };
    struct  Matrix m;

    这个union表示一个3x3的矩阵,直接用m._matrix._f11就能访问矩阵的1,1元素。

    这样是不是看上去好看点?

    不觉得好看?好吧,其实我也觉得这样的代码也没什么更好看,不过反正就是这么回事吧。

    但是union的时候,修改某个成员会覆盖旧的值,所以各个union成员之间需要协商好,需要互斥。

    union
    {
        int a;
        float b;
    }_matrix;

    如果要写_matrix.a,哪需要确保_matrix.b已经不需要保留,可以被覆盖了。

  • 相关阅读:
    Remote API(RAPI)之 文件管理
    vue前端框架

    托马斯彩色回旋
    VUE?
    cookie与session
    ajax前后端分离
    djangoIII
    Django少年
    django三板斧
  • 原文地址:https://www.cnblogs.com/zzSoftware/p/3342953.html
Copyright © 2011-2022 走看看