Errori, bug, domande - pagina 2865
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
È impossibile creare un nuovo prodotto per il mercato, dice errore 500.
Il prodotto è stato creato e controllato, dice che è stato pubblicato, ma quando si clicca sul link si ottiene una risposta di 500.
Funziona dall'alto verso il basso come sostituzione del testo. Cioè "TMP" sarà sostituito da "VALUE".
Questo non è un compilatore - è un preprocessore)
si trasforma in
e il VALORE non è definito.
Come dovrebbe funzionare undef?
Come dovrebbe funzionare undef?
Fino a questo punto, c'è una "sostituzione di testo" in corso.
Non è un compilatore - è un preprocessore)
si trasforma in
, e il VALORE è indefinito.
Ho capito bene, il tipo di valore VALUE*2 è const ed è legato alla sostituzione stessa, cioè il VALUE è anche una costante. Il compilatore crea due costanti.
Se è così, deve creare una nuova sostituzione.
#define VALUE VALUE1
E non è corretto se VALUE sopra il codice è stato definito come una costante.
Fino a questo punto c'è una "sostituzione di testo" in corso.
Non corrisponde, cambia TMP inVALUE nella linea "#define VALUE (TMP*2)" che è dopo.
Non quadra, cambia TMP inVALUE nella linea "#define VALUE (TMP*2)" che è dopo.
E così le sostituzioni continuano fino alla fine.
C'è un codice:
La prima sostituzione cambia VALUE in 10 in tutto il codice fino a #undef VALUE, lasciando questo:
La prossima sostituzione cambia il TMP in 10. Si scopre che
Dove sto sbagliando?
C'è un codice:
La prima sostituzione cambia VALUE in 10 in tutto il codice fino a #undef VALUE, lasciando questo:
La prossima sostituzione cambia il TMP in 10. Si scopre che
Cosa sto facendo di sbagliato?
Non è 10 che viene sostituito a TMP, è il VALORE, ma se il VALORE è definito (il che è una rottura di palle), è 10.
Guarda questo passo per passo:
Il preprocessore inserisce fedelmente Print
e poi, di nuovo senza trucchi, sostituisce cosa? Giusto:
e poi cancella tutte le direttive del preprocessore e solo dopo il compilatore ottiene questo:
TMP non è 10, ma VALUE è sostituito a TMP, e poi se VALUE è definito (il che è un problema), è 10
Guarda questo passo per passo:
Il preprocessore inserisce fedelmente Print
e poi, di nuovo senza trucchi, sostituisce cosa? Giusto:
e poi cancella tutte le direttive del preprocessore e solo dopo il compilatore ottiene questo:
Questo non si chiama "top-down".
Non si chiama top-down.
Scusa, mi sono confuso mentre cercavo di spiegarmi)))
Un'altra volta:
Al momento della seconda definizione di VALUE, la macro VALUE non è definita, quindi VALUE è definito come
(VALUE*2)
perché TMP era ed è ancora definito da VALUE.
Ma TMP, dopo la seconda definizione di VALORE, si espande a
(TMP*2)
(Qualcosa del genere))
Il preprocessore riempie semplicemente ciò che ha e non importa come e dove è definito. Per questo bisogna fare attenzione. Esempio:
e ora aggiungiamo una cosa malvagia alla funzione, cioè un effetto collaterale
E questa è solo un'iscrizione, ma se il deposito dipendesse da questa funzione?