import std.stdio;

struct AA
{
    int i;
    char c;
    double d;
    string s;
    float f;
}

struct BB
{
    float f;
    AA[2] a;
}

void print(BB* bb)
{
    writefln("bb.a[0].i=%d bb.f=%f", bb.a[0].i, bb.f);
}

void main()
{
    //dlang
    AA aa = {
        i:1010,
        f:0.1f
    };

    BB bb = {
        f : 0.2f,
        a : [
                AA(1010, 0,0,null,0.1f),
                AA(1020,0,0,null,0.2f)
            ]
    };

    print(&bb);

    /************************************************/
    /*

    //C99
    print( &(BB){
        .f = 0.2f,
        .a = {
            [0] = { .i = 1010, .f = 0.1f }
            [1] = { .i = 1020, .f = 0.2f }
        }
    });

    */
}


dlang version has two unnecessary symbols aa and bb, which is ugly compare to c99 one.

Reply via email to