Ho fatto del mio meglio per Google ma non sono riuscito a trovare una risposta pulita in un modulo simile a una tabella che mostra le conversioni di tipo.Conversione di tipo da C a Java
Il motivo per cui vorrei convertire questi tipi, è perché sto usando l'NDK di Android per chiamare le funzioni dal codice nativo. Il problema è che il codice nativo chiama tipi diversi che non esistono in Java.
In realtà non ho esperienza in C, e ho trovato questi pochi tipi di guardare rapidamente il codice. Non esitate a modificare questo post per aggiungere diversi tipi da convertire.
From C to Java
long ->
short ->
char ->
unsigned long ->
unsigned short ->
unsigned char ->
byte ->
Int8 ->
Int16 ->
Int32 ->
UInt8 ->
UInt16 ->
UInt32 ->
Inoltre, se uno di questi non può essere convertito in un tipo Java, spiegare perché.
Android Dalvik VM è un 32 bit solo VM, quindi la conversione dovrebbe essere banale. Vedi anche http://stackoverflow.com/a/11527544/841108 –
I tipi firmati con larghezze specificate dovrebbero essere mappati a 'byte',' short' e 'int' come da [questa pagina di Java Tutorial] (http: // docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html). Per quanto riguarda gli altri, un modo per scoprirlo sarebbe di stampare quale 'sizeof (long)' et al. ti dico quando è stato eseguito sul tuo dispositivo di destinazione. (La larghezza dei tipi di dati C è in qualche misura specifica per compilatore e architettura.) – millimoose
Ma '' fornisce tipi interi di larghezza nota per C99. –