|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
[C] Macro non ben identificata
Salve ragazzi, sto traducendo una libreria scritta in C in un altro linguaggio (due a dire il vero, Java e C#) e fa uso delle tanto odiate (almeno da me) macro.
Io son scafato soprattutto con il C++ e devo ammettere che il C puro comincio un po' a dimenticarlo. Le macro poi son sempre state elementi che non ho approfondito. Fatto sta che nella sfilza di macro che mi son ritrovato di fronte una non riesco a comprenderla. Sapreste tradurmela in una normale funzione? Codice:
#define mm_clear_typecode(typecode) ((*typecode)[0]=(*typecode)[1]= \ (*typecode)[2]=' ',(*typecode)[3]='G') typecode per la cronaca è un semplice typedef per un array di 4 char. Codice:
typedef char MM_typecode[4]; edit: La traduzione in funzione semplice non deve essere per forza in C#/Java. Va benissimo anche in C++ Ultima modifica di [Kendall] : 20-08-2012 alle 18:51. |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Codice:
char mm_clear_typecode(MM_typecode *val) { (*val)[0] = (*val)[1] = (*val)[2] = ' '; (*val)[3] = 'G'; return (*val)[3]; }
__________________
In God we trust; all others bring data |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
|
Ti ringrazio. Quindi il backslash non fa altro che dire al compilatore che l'espressione della macro va a capo?
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jul 2009
Città: Milano
Messaggi: 270
|
Che il contenuto della macro continua sulla riga successiva, come se fosse scritta su una riga soltanto. Spezza una sequenza di istruzioni in più righe.
__________________
AMD PII x4 955 BE | Sapphire HD4850 Vapor-X 1 GB | Samsung SpinPoint F1 500GB | Samsung EcoGreen F4 2TB Gigabyte GA-MA790FXT-UD5P | Fractal Design Define R3 USB3.0 Titanium Grey | CORSAIR 650W CMPSU-650TX Noctua U12P SE2 | 2 x 2GB Kingston 1333 MHz | Samsung SyncMaster P2450 | Samsung SyncMaster T200 Ultima modifica di __ZERO_UNO__ : 21-08-2012 alle 00:58. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:59.