Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Uma nota aos programadores:
Agora, se precisarmos de editar uma enumeração, editamos uma vez e num só lugar. Precisamos de adicionar um novo elemento, por exemplo elemento_novo = 56, adicionamos
E não nos preocupamos com a função de edição get_enumqq_array(). A técnica chama-se X Macro https://en.wikipedia.org/wiki/X_Macro. Se os criadores desejarem, podem facilmente modificar as enumerações padrão de forma semelhante.
Talvez não seja imediatamente óbvio, a enumeração acabou por ser feita desta forma:
Fixe! Eu não sabia da X Macro, obrigado! Apenas não compreendo o código, porque não há erro devido à vírgula no fim da definição ENUM_QQ_HELPER. Não deve haver uma vírgula após o último elemento ao definir enumeração ou matriz. Mas o compilador não parece jurar por alguma razão.
Eu tentei
não o fará. E o tamanho da matriz (enumerar) é como deve ser. É fixe! Parece ser um insecto, mas eu preferia ter um tal insecto. Realmente, é conveniente.
Bem, é uma violação legítima, especialmente para este tipo de "coisas", aparentemente. Não se preocupe, também não é um erro em C/C++.
SZZ: em norma C++ sobre o tema da inicialização:
braced-init-list:
{initializer-list , opt}
{ }
Isto é, a vírgula no final da lista de braced-init-list é legalizada ao mais alto nível.
Ou seja, a vírgula no final da lista de bracede-init é legalizada ao mais alto nível.
Uma nota aos programadores:
E os nomes normais que estão nos comentários?
E os nomes normais que estão nos comentários?
E os nomes normais que estão nos comentários?
Sim, a inserção de um comentário não funciona. Sintaxe infeliz para comentar os enums.
Posso ter um exemplo do enumeral em questão?
Sim, não funciona para inserir um comentário. Sintaxe infeliz para comentar as enumerações.
Concluir em /*...*/.
enum E {
a = 1, --**-- Комментарий_1
b = 2 --**-- Комментарий_2
};
O problema aqui é que o pré-processador não quer comer comentários (tanto // como /*), não espera vê-los quando as macros são expandidas. Ou alterar as regras do pré-processador, ou introduzir uma forma alternativa de comentar enumerações (os comentários serão exibidos ao executar o guião em definições), como esta:
enum E {
a = 1, --**-- Комментарий_1
b = 2 --**-- Комментарий_2
};
O pré-processamento é feito em várias etapas. No início, todos os comentários são retirados do código fonte e o resultado é enviado para processamento. E é aqui que o pré-processador não espera encontrar um comentário (quando abre as macros). Considerará tal encontro como um erro. Por exemplo, aqui:
À primeira vista, este código inofensivo deve conter um comentário. Mas não se compila.