|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2003
Città: Verona
Messaggi: 252
|
C, Alcune domande su sintassi
Ciao a tutti...
Leggendo del codice mi sono imbattuto in un paio di righe di cui non ho mai visto la sintassi, qualcuno mi può aiutare? DATA_TYPE REGPARM(1) glue(glue(__ld, SUFFIX), MMUSUFFIX)(target_ulong addr, int is_user) { ..... } Sembra una funzione ma non riesco a capirne il significato della doppia parentesi... Grazie
__________________
HP DV5-1170EL HTC TYTN WM6 Ultima modifica di alessc : 19-08-2006 alle 14:07. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1455
|
la seconda è un indice di scorrimento a destra di n bits.
La prima non riesco a capirla bene, ma solitamente si tratta di puntatori a funzioni.
__________________
Ciao ~ZeRO sTrEsS~ |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Sep 2003
Città: Verona
Messaggi: 252
|
Quote:
Il fatto è che io ho sempre visto funzioni con una singola parentesi dove mettere dentro i parametri, ma questa (sempre che sia una funzione ma non mi viene in mente altro) è del tipo funzione(prima parentesi)(seconda parentesi)... non le ho mai viste prima d'ora. chi può dare delucidazioni? Grazie
__________________
HP DV5-1170EL HTC TYTN WM6 |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Mar 2004
Messaggi: 1455
|
Quote:
__________________
Ciao ~ZeRO sTrEsS~ |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Generalmente per avere compatibilita' fra vari sistemi, dichiarazioni che cambiano mediante definizioni in compilazioni, ... si fanno questi giochetti, i quali sono sicuramente poco leggibili. A mio avviso sembrerebbe che si stia dichiarando una funzione: - il valore di ritorno e' dato dalla macro DATA_TYPE_REGPARM, che verra' sostituita in precompilazione dal tipo richiesto (probabilmente indicizzato da 1); - glue() sembrerebbe una macro fatta apposta per "attaccare" insieme i nomi. E' un trucco piuttosto usato, hai due nomi e vuoi ottenere, per esempio, un solo nome dato dalla loro unione. Probabilmente e' qualcosa del tipo #define glue(a,b) a##b Con questo trucco stabilisci il nome della funzione che stai dichiarando - infine hai la lista dei parametri. Non male... sicuramente poco leggibile. Sembra parte di un grosso progetto software che deve essere configurato in tempo di compilazione. High Flying Sottovento
__________________
In God we trust; all others bring data |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Quote:
Comunque certe volte e' utile. (anche se, come sempre, evitabilissimo). High Flying Sottovento
__________________
In God we trust; all others bring data |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#9 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
ma non è che c'è un errore di sintassi...?
![]() io vedo due identificatori (tipo e nome funzione), parentesi tonda aperta (inizio parametri), costante numerica ( ), corpo della funzione...i primi due identificatori sono macro? senza conoscerne la definizione è impossibile determinare la sintassi di quella roba |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
|
Quote:
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z ∞Mb - Win Eight SP (1 > yours) 16 Valve |
|
|
|
|
|
|
#11 |
|
Utente sospeso
Iscritto dal: Oct 2002
Messaggi: 2156
|
sembrerebbe una funzione che ritorna un tipo (utente?) DATA_TYPE mentre REGPARAM(1) potrebbe essere una macrofunzione che diventa una convenzione di chiamata.......
__________________
sign editata dallo staff |
|
|
|
|
|
#12 | |
|
Member
Iscritto dal: Sep 2003
Città: Verona
Messaggi: 252
|
Quote:
Grazie
__________________
HP DV5-1170EL HTC TYTN WM6 |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:59.












), corpo della funzione...







