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
Una nota per i programmatori:
Ora, se abbiamo bisogno di modificare un'enumerazione, la modifichiamo una volta sola e in un solo posto. Abbiamo bisogno di aggiungere un nuovo elemento, per esempio element_new = 56, aggiungiamo
E non ci preoccupiamo di modificare la funzione get_enumqq_array(). La tecnica si chiama X Macro https://en.wikipedia.org/wiki/X_Macro. Se gli sviluppatori lo desiderano, possono facilmente modificare le enumerazioni standard in modo simile.
Forse non immediatamente evidente, l'enumerazione si è rivelata così:
Fico! Non sapevo della X Macro, grazie! Proprio non capisco il codice, perché non c'è errore a causa della virgola alla fine della definizione ENUM_QQ_HELPER. Non ci dovrebbe essere una virgola dopo l'ultimo elemento quando si definisce enum o array. Ma il compilatore non sembra bestemmiare per qualche motivo.
Ho provato
non lo farà. E la dimensione dell'array (enum) è come dovrebbe essere. È forte! Sembra essere un bug, ma preferirei avere un bug del genere. Davvero, è conveniente.
Beh, è una violazione legittima, specialmente per ogni tipo di "roba" come questa, a quanto pare. Non preoccupatevi, non è un errore neanche in C/C++.
SZZ: nello standard C++ sul tema dell'inizializzazione:
braced-init-list:
{initializer-list , opt}
{ }
Cioè la virgola alla fine di braced-init-list è legalizzata al livello più alto.
Cioè, la virgola alla fine del braced-init-list è legalizzata al livello più alto.
Una nota per i programmatori:
E i nomi normali che si trovano nei commenti?
E i nomi normali che si trovano nei commenti?
E i nomi normali che si trovano nei commenti?
Sì, inserire un commento non funziona. Sintassi infelice per commentare gli enum.
Posso avere un esempio dell'enum in questione?
Sì, non funziona per inserire un commento. Sintassi infelice per commentare le enumerazioni.
Concludere in /*...*/.
enum E {
a = 1, --**-- Комментарий_1
b = 2 --**-- Комментарий_2
};
Il problema qui è che il preprocessore non vuole mangiare i commenti (sia // che /*), non si aspetta di vederli quando le macro sono espanse. O si cambiano le regole per il preprocessore, o si introduce un modo alternativo per commentare le enumerazioni (il commento sarà visualizzato quando si esegue lo script nelle impostazioni), come questo:
enum E {
a = 1, --**-- Комментарий_1
b = 2 --**-- Комментарий_2
};
La pre-elaborazione è fatta in diversi passi. All'inizio, tutti i commenti vengono rimossi dal codice sorgente e il risultato viene inviato per l'elaborazione. Ed è qui che il preprocessore non si aspetta di incontrare un commento (quando apre le macro). Considererà tale incontro come un errore. Per esempio, qui:
A prima vista, questo codice innocuo dovrebbe contenere un commento. Ma non si compila.