Bug de compilador com parâmetro de modelo = vazio* - página 14

 

Somente parênteses. Somente para guaxinins. Somente hardcore !!! 11111

#define    cmp(D1,D2)          \
  ((t_flp(D1)||t_flp(D2))?(((D1)>=(D2))?(((D1)-(D2))>=EPS(D1)?1:0):(((D2)-(D1))>=EPS(D1)?-1:0)):(((D1)>(D2))?1:(((D1)<(D2))?-1:0)))
 
Ilya Malev:

Somente parênteses. Somente para guaxinins. Somente hardcore !!! 11111

Somente em #define o compilador não gera os avisos correspondentes,e seria bom também

A propósito, os parênteses são desnecessários aqui.

(((D1)<(D2))?-1:0)
 

Deus nos livre de usar parênteses em macros. Não se pode passar sem eles lá.

Igor Makanu:

pois não mudará ao portar o código para outras linguagens de programação

Em outros idiomas (por exemplo, BASIC ou Pascal) seus operadores bitwise e condicionais são inválidos, portanto é um problema espúrio e MQ mexer com as prioridades no passado não é um indicador).

 
A100:

Somente em #define o compilador não gera os avisos correspondentes, o queseria bom, também

Mas o primeiro a usá-lo em um código específico, e ele dá uma dica tal que deve ser colocado não em um lugar que considera suspeito, mas em um lugar onde no código o símbolo da definição está escrito. Acho que isto é uma espécie de dica para manter seus bobos e não abusar de seu pré-processador)

 
Ilya Malev:
A propósito, você não usa espaços em seu código como uma questão de princípio? Aqui está outro exemplo. Não sei como você pode fazer sentido de tal confusão de caracteres se todo o código está nesse estilo.
 
Alexey Navoykov:
A propósito, você não usa espaços em seu código? Aqui está outro exemplo. Não sei como se pode entender um monte de caracteres se todo o código está neste estilo.

Em definições, sim, eu não os uso, porque não os considero como código, eles são apenas macros, eles devem ser o mais compacto possível. E este exemplo foi especialmente escolhido como o mais orientado para o guaxinim de toda a biblioteca ))

Quanto ao exemplo, escrito em 2 minutos, o recuo está lá, onde eu queria mostrar a parte importante - as chamadas del em OnStart e o resto era secundário e é mais importante que o cargo não ocupem meia página, do que manter o recuo.

 
Ilya Malev:

... são apenas macros, eles devem ser o mais compactos possível.

... É mais importante que o poste não ocupe meia página do que esteja recuado.

Eu não entendo sua lógica e prioridades )
 
A100:

Por que você mesmo não as coloca? Eu não poderia me incomodar em olhar seu perfil:

É suposto ser assim:

Você declara uma coisa, mas faz exatamente o contrário.

Se mesmo os aderentes de parênteses não os colocam eles mesmos, essa é a melhor prova de sua inutilidade

Infelizmente, meu código, que você citou como exemplo, foi escrito por mim há muito tempo, 4 anos atrás, creio eu.

Meu posto era sobre acolher inequívocos em expressões aritméticas/lógicas e parênteses permitem alcançá-lo, agora eu geralmente tento escrever condições inequívocas, é mais fácil para mim, e é impossível cometer um erro, você citou um fragmento de código onde eu estava calculando ordens virtuais, agora eu escrevo este problema desta maneira:

allorders = OrdersCount(all_buy,all_sell);
if(allorders==0){
   // если торговля одним ордером выставим ордер и выход
   if(MA1>MA2) { BUY();  return;}
   if(MA1<MA2) { SELL(); return;}
.......   

// или так
   if(all_buy==0){
      if(MA1>MA2) { BUY();  return;}
   }
   if(all_sell==0){
      if(MA1<MA2) { SELL();  return;}
   }

//ф-ция подсчета ордеров
int OrdersCount(int &buy_,int &sell_)
{
   buy_=0; sell_ =0;
.............   
   return(buy_+sell_);

}

Não sou adepto de parênteses, mas sou adepto de um algoritmo de valor único, que será lido da mesma forma que uma estratégia comercial

;)

PS: Não participo mais deste coro, mesmo que@fxsaber tenha escrito que parênteses ajudam a evitar erros, então não há nada para discutir, porque ele sabe escrever códigos tão compactos, há apenas duas vezes mais dessas pessoas neste fórum, brevidade é a irmã do talento - trata-se de@fxsaber


Ilya Malev:

Somente parênteses. Somente guaxinins. Somente hardcore !!! 11111

E então entendi porque Metacquotes não dão indicações completas na MQL.... imaginou suas macros e códigos com ponteiros de passagem, desreferenciando ponteiros em funções. hardcore é muito suave, qual é o próximo BDSM? ))))

 
Igor Makanu:

Pois ele é capaz de escrever códigos tão compactos, há apenas um punhado dessas pessoas neste fórum, brevidade é a irmã do talento - trata-se de@fxsaber

(Os parênteses estão empilhados em cima dos parênteses é a irmã do talento? ) Bem, cada um tem direito a sua opinião.
 
Alexey Navoykov:
(É a irmã do talento estar cheia de parênteses desnecessários? ) Mas todos têm direito à sua opinião.

eles não são supérfluos! eles ajudam a ler a lógica de como a expressão é formada!

o número de parênteses afeta a velocidade? - a menos que afete a velocidade de digitação, mas ninguém a observa.... o número de parênteses que cada usuário em um dia na internet é um exemplo marcante ))))

Razão: