Avatar billede borrisholt Novice
03. oktober 2001 - 11:36 Der er 5 kommentarer og
1 løsning

union og Struct

Er der nogen der kan oversætte det følgende C++ kode til JAVA :

struct TMD5Context
{
    int State[4];
    int Count[2];
    union
    {
        struct
        {
            int BufLong[16];
           
        };
        struct
        {
            Byte BufChar[64];
           
        };
       
    };
} ;


Jens B
Avatar billede kresten Nybegynder
03. oktober 2001 - 11:42 #1

Noget i stil med....

public class TMD5Context {
  public int state[4];
  public int Count[2];
  private long BufLong[16];
  private char BufChar[64];

  public void setLongBuffer(long Pbuf[]) {
    BufLong = pBuf;
  }
  public void setCharBuffer(char Pbuf[]) {
    BufLong = pBuf;
  }
  public long[] getLongBuffer() {
    BufLong = pBuf;
  }
  public char[] getCharBuffer() {
    BufLong = pBuf;
  }
}
Avatar billede kresten Nybegynder
03. oktober 2001 - 11:43 #2

Men structs i Java findes ikke. Kan heller ikke huske hvad union gør? :-)
Avatar billede borrisholt Novice
03. oktober 2001 - 11:51 #3
Tak for hjælpen .. Det ledte mig på sporet :

  public class TMD5Context
  {
      public int[] State = new int[3];
      public int[] Count = new int[1];

      private long[] BufLong = new long[16];
      private char[] BufChar = new char[64];

      public void setLongBuffer(long pBuf[])
      {
        BufLong = pBuf;
      }
      public void setCharBuffer(char pBuf[])
      {
        BufChar = pBuf;
      }

      public long[] getLongBuffer()
      {
        return BufLong;
      }

      public char[] getCharBuffer()
      {
        return BufChar;
    }
  }

kompilerer i hvertfald ....

JEns B
Avatar billede disky Nybegynder
03. oktober 2001 - 12:12 #4
union gør i ovenstående eksempel af du entet læser data som 16 long eller 64 char.

I java typecaster man bare, dit eksempel reserverer nemlig både den ene og den anden, og er derfor slet ikke det samme som C eksemplet.

Hvor begge buffere bruger det samme stykke hukommelse.

Enten skal du typecaste frem og tilbage, eller have nogle metoder som sørger for de to array\'s altid er ens rent binært.

Så du var lidt hurtig ude med point,
Avatar billede borrisholt Novice
03. oktober 2001 - 12:26 #5
disky >> Mit problem er jeg ved en masse om Delphi noget om C++ og INTET om JAVA.

Jeg skal prote et Delphi program til JAVA (suk ..) Derfor når jeg ser det kompilerer tror jeg det virker .....

Du er velkommen til at lave det om :-)

Jens B
Avatar billede disky Nybegynder
03. oktober 2001 - 12:30 #6
ja der er ikke noget java forkert i den kode.

Den er bare ikke det samme som din struct/union.

forresten skulle der stå 16 int og ikke 16 long.

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester