Erros, bugs, perguntas - página 2865
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
É impossível criar um novo produto para o mercado, diz erro 500.
O produto foi criado e verificado, diz-se que foi publicado, mas quando se clica no link obtém-se uma resposta de 500.
Funciona de cima para baixo como um substituto de texto. Isto é, "TMP" será substituído por "VALOR".
Isto não é um compilador - é um pré-processador)
transforma-se em
e o seu VALOR é indefinido.
Como é que o undef deve funcionar?
Como é que o undef deve funcionar?
Até este ponto, há "substituição de texto" em curso.
Não é um compilador - é um pré-processador)
transforma-se em
, e o VALOR é indefinido.
Entendo correctamente, o tipo de valor VALOR*2 é constante e está ligado à própria substituição, ou seja, o VALOR é também uma constante. O compilador cria duas constantes.
Se assim for, deve estar a criar uma nova substituição.
#define VALUE VALUE1
E não é correcto se o VALOR acima do código foi definido como uma constante.
Até este ponto há "substituição de texto" em curso.
Não corresponde, muda TMP paraVALOR na linha "#define VALUE (TMP*2)" que é a seguir.
Não faz sentido, muda TMP paraVALOR na linha "#define VALUE (TMP*2)" que é a seguir.
E assim as substituições continuam e continuam até ao seu fim.
Existe um código:
A primeira substituição altera o VALOR para 10 ao longo do código até ao #undef VALUE, deixando este
A substituição seguinte muda o TMP para 10. Acontece que
Onde é que eu estou a ir errado?
Existe um código:
A primeira substituição altera o VALOR para 10 ao longo do código até ao #undef VALUE, deixando este
A substituição seguinte muda o TMP para 10. Acontece que
O que é que estou a fazer mal?
Não é 10 o que substitui o TMP, é o VALOR, mas mais tarde, se o VALOR for definido (o que é um chato), é 10.
Veja este passo a passo:
O pré-processador insere fielmente a impressão
e depois, novamente sem truques, substitui o quê? Certo:
e depois apaga todas as directivas do pré-processador e só depois disso é que o compilador recebe isto:
TMP não é 10, mas VALOR é substituído por TMP, e então se VALOR é definido (o que é um problema), é 10
Veja este passo a passo:
O pré-processador insere fielmente a impressão
e depois, novamente sem truques, substitui o quê? Certo:
e depois apaga todas as directivas do pré-processador e só depois disso é que o compilador recebe isto:
Isto não é chamado "de cima para baixo".
Não é chamado de cima para baixo.
Desculpe, fiquei confuso ao tentar explicar-me))))
Mais uma vez:
Na altura da segunda definição de VALOR, a macro VALOR não está definida, pelo que VALOR é definido como
(VALUE*2)
porque o TMP foi e ainda é definido por VALOR.
Mas o TMP, após a segunda definição de VALOR, é expandido para
(TMP*2)
(Algo parecido com isto))
O pré-processador apenas preenche o que tem e não importa como e onde é definido. É por isso que tem de ter cuidado com ela. Exemplo:
e agora vamos acrescentar uma coisa má à função, nomeadamente um efeito secundário
E isto é apenas uma inscrição, mas e se o depósito depender desta função?