比如有以下结构:
typedef struct _position
{
byte x;
byte y;
} CPOSITION;
typedef struct _move
{
short id;
CPOSITION from;
CPOSITION to;
int score;
} CMOVE;用JS应怎样写?

解决方案 »

  1.   

    这样就好了
    var pos = {x: 1, y: 2};
    var move = {id: 1, from: {x: 1, y: 2}, to: {x: 1, y: 3}, score: 15};js比较灵活,直接给对象的属性赋值就能添加一个新的属性(也可以叫字段)。
      

  2.   


    这个move 能直接push到数组吗?比如可不可以这样:
    var movelist=[];
    movelist.push(move);
      

  3.   

    这样写的话弹出的全部是第10个值!
     var movelist=[];
        var j="";
        var mp={from:{x:10,y:9},to:{x:5,y:4}};
     
        for (var v=0;v<=10;v++)
        {    mp.from.x=v+"sss";
        mp.from.y=v+"kkk";
        mp.to.x=v+"jjj";
        mp.to.y=v+"ttt";
     
        movelist.push(mp);
        
        }
        for (var v=0;v<=10;v++)
        {
     
        j=j+movelist[v].from.x +"_"+movelist[v].from.y+"_"+movelist[v].to.x+"_"+movelist[v].to.y+"\n";    }
        alert(j);而这样写就可以了!var movelist=[];
        var j="";
        var mp="";
        var fromx,fromy,tox,toy;
     
        for (var v=0;v<=10;v++)
        {   fromx=v+"sss";
       fromy=v+"kkk";
       tox=v+"jjj";
       toy=v+"ttt";
     mp={"from":{"x":fromx,"y":fromy},"to":{"x":tox,"y":toy}};
        movelist.push(mp);
        
        }
        for (var v=0;v<=10;v++)
        {
     
        j=j+movelist[v].from.x +"_"+movelist[v].from.y+"_"+movelist[v].to.x+"_"+movelist[v].to.y+"\n";    }
        alert(j);
      

  4.   

    mp={"from":{"x":fromx,"y":fromy},"to":{"x":tox,"y":toy}};相当于
    mp = new Object();
    mp.from = new Object();
    mp.from.x = fromx;
    ....构造了一个对象第一种情况只构造了一个对象,其他都是操作这个对象,赋值不过是引用;
    第二种情况才是构造了十个对象。