Sostituzione macro significa che tutto quel codice (che è nella definizione), sarà sostituito ogni volta in un posto specificato nel programma. Quindi, invece di fare una funzione e chiamarla, si copia questa funzione all'interno del codice molte volte, come un pezzo di codice.
E se fatereturn da una macro, èreturn da tutto il codice in cui questa macro è inserita.
La sostituzione di macro significa che tutto il codice (che è nella definizione), sarà sostituito ogni volta nel posto specificato del programma. Infatti, invece di fare una funzione e chiamarla, si copia questa funzione all'interno del codice molte volte, come un pezzo di codice.
E se fatereturn da una macro, questo è return da tutto il codice dove questa macro è inserita.
Si scopre che non si può scrivere una funzione macro.
Come scrivere 2 macro senza saltare a una nuova linea aumenta notevolmente il numero di linee, il che allunga notevolmente il programma, ecco un esempio
#define I int#define B bool//это просто пример ни в коем случае не воспринимайте всерьёз
è possibile convertire un nome di variabile in una stringa?
Non funziona così:
#define p_func(NAME) Print("This is ##NAME")
//+------------------------------------------------------------------+voidOnStart()
{
int QWERTY;
int zxcvbn;
p_func(QWERTY);//This is ##NAME
p_func(zxcvbn);//This is ##NAME
}
Seric29: Ragazzi, voglio scrivere una macro di makros(a) e funzionerà così: se a è uguale a 1, restituirà qualsiasi valore di tipo int, se a è uguale a 2, restituirà qualsiasi valore di tipo double, se a è uguale a 3, restituirà qualsiasi valore di tipo bool. È possibile farlo?
Per quale motivo? Per quale motivo? Dove lo userete?
Seric29: Ragazzi questa domanda voglio scrivere una macro makros(a), funzionerà così: se a è uguale a 1ce allora la macro restituirà qualsiasi valore di tipo int, se a è uguale a 2ke allora la macro restituirà qualsiasi valore di tipo double, se a è uguale a 3ke allora la macro restituirà qualsiasi valore di tipo bool. È possibile farlo?
In µl, si può fare a meno di GET_EXPAND, ma è roba specifica per µl, è più corretto. Beh, le macro di μl sono molto limitate a causa della mancanza dell'operatore virgola (anche se tramite stampelle...).
ZZY: ed è tutto a tempo di compilazione, ovviamente.
ZZZY: a proposito, se ci fosse un operatore fantasma, si potrebbe fare questo:
class Q{
public:
operatorint();
operatordouble();
operatorbool();
};
...
Q q;
int i = q; // call operator intdouble d = q; // call operator doublebool b = q; // ...
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Le macro restituiscono valori?
Bene, ecco un esempio di codice
Bene, ecco un codice di esempio
Sostituzione macro significa che tutto quel codice (che è nella definizione), sarà sostituito ogni volta in un posto specificato nel programma. Quindi, invece di fare una funzione e chiamarla, si copia questa funzione all'interno del codice molte volte, come un pezzo di codice.
E se fatereturn da una macro, èreturn da tutto il codice in cui questa macro è inserita.
La sostituzione di macro significa che tutto il codice (che è nella definizione), sarà sostituito ogni volta nel posto specificato del programma. Infatti, invece di fare una funzione e chiamarla, si copia questa funzione all'interno del codice molte volte, come un pezzo di codice.
E se fatereturn da una macro, questo è return da tutto il codice dove questa macro è inserita.
Si scopre che non si può scrivere una funzione macro.
Si scopre che non c'è modo di scrivere una funzione macro.
Una sostituzione di macro è la sostituzione di un testo con un altro (nel codice sorgente), non può essere una funzione per definizione.
Come scrivere 2 macro senza saltare a una nuova linea aumenta notevolmente il numero di linee, il che allunga notevolmente il programma, ecco un esempio
La macro B non funziona più.
è possibile convertire un nome di variabile in una stringa?
Non funziona così:
Ragazzi, voglio scrivere una macro di makros(a) e funzionerà così: se a è uguale a 1, restituirà qualsiasi valore di tipo int, se a è uguale a 2, restituirà qualsiasi valore di tipo double, se a è uguale a 3, restituirà qualsiasi valore di tipo bool. È possibile farlo?
Per quale motivo? Per quale motivo? Dove lo userete?
è possibile convertire un nome di variabile in una stringa?
Ragazzi questa domanda voglio scrivere una macro makros(a), funzionerà così: se a è uguale a 1ce allora la macro restituirà qualsiasi valore di tipo int, se a è uguale a 2ke allora la macro restituirà qualsiasi valore di tipo double, se a è uguale a 3ke allora la macro restituirà qualsiasi valore di tipo bool. È possibile farlo?
In µl, si può fare a meno di GET_EXPAND, ma è roba specifica per µl, è più corretto. Beh, le macro di μl sono molto limitate a causa della mancanza dell'operatore virgola (anche se tramite stampelle...).
ZZY: ed è tutto a tempo di compilazione, ovviamente.
ZZZY: a proposito, se ci fosse un operatore fantasma, si potrebbe fare questo: