テンプレート・パラメータ = void* のコンパイラ・バグ - ページ 14

 

ブラケットのみ。アライグマのみハードコアのみ!!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:

ブラケットのみ。アライグマのみハードコアのみ!!11111

defineの場合のみ コンパイラは対応する警告を発生させないので、それも良いでしょう。

ちなみに、ここでは括弧は不要です。

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

マクロで括弧を使うのは神隠しだ。そこになくてはならない存在です。

Igor Makanu:

他のプログラミング言語にコードを移植する際にも変更されないため

他の言語(例えばBASICやPascal)では、ビット演算子や条件演算子は無効なので、スプリアスな問題であり、MQが過去に優先順位をいじったことは指標になりません)。

 
A100:

defineの場合のみ、コンパイラは対応する警告を生成しないので、それも良いだろう

しかし、最初に特定のコードで使う場合、怪しいと思う場所ではなく、コードの中でdefineの記号が書かれている場所に置くべきだというようなヒントを与えてくれるのです。これはアライグマを飼うためのヒントのようなもので、プリプロセッサを乱用してはいけないと思う)

 
Ilya Malev:
ところで、あなたは原則としてコードにスペースを使わないのですか 別の例を挙げましょう。 すべてのコードがそのスタイルであれば、このようなごちゃごちゃした文字の意味を理解することはできませんね。
 
Alexey Navoykov:
ちなみに、コードにスペースは使わないのですか これも例ですが、すべてのコードがこのスタイルだと、このような文字数の多さをどう理解したらいいのかわかりません。

定義では、そうですね、私は使いません。なぜなら、コードとは考えておらず、単なるマクロですから、できるだけコンパクトであるべきなのです。そして、この例は、ライブラリの中で最もアライグマ的なものとして特別に選ばれたものです ))

2分で書いた例については、インデントがあるのは、重要な部分、つまりOnStartのcall delを見せたかったからで、その他は二の次で、インデントを維持することよりも、記事が半ページを占めないことの方が重要なのです。

 
Ilya Malev:

...は単なるマクロなので、できるだけコンパクトにする必要があります。

...インデントされていることよりも、投稿がページの半分を占めていないことの方が重要です。

あなたの論理と優先順位が理解できない )
 
A100:

自分で貼ればいいじゃないですか。あなたのプロフィールを見るのが面倒でした。

こうなるはずなんです。

宣言しておきながら、まったく逆のことをする。

ブラケットの信奉者でも自分で付けないのであれば、それこそ役立たずの何よりの証拠

残念なことに、あなたが例として挙げた私のコードは、ずいぶん前に私が書いたもので、4年前だったと思います。

私の投稿は、算術・論理式の曖昧さをなくすことと、それを実現するためのブラケットについてでした。

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_);

}

私は括弧の熟練者ではありませんが、単一値アルゴリズムの支持者であり、これはトレーディング戦略と同じように読み取れるでしょう

;)

追記:私はもうこのコーラスには参加しません、たとえ@fxsaberが 括弧は間違いを避けるのに役立つと書いたとしても、議論することは何もありません、彼はこのようなコンパクトなコードを書く方法を知っているので、このフォーラムでこのような人々の2倍しかありません、簡潔さは才能の妹です - それは@fxsaberについて です。


イリヤ・マレフ

ブラケットのみ。アライグマだけ。ハードコアのみ!!!11111

そして、メタクオーツがMQLで本格的なポインターを提供しない理由がわかりました...。ポインタの受け渡し、関数へのポインタの再参照など、マクロやコードを絵にすることができます。ハードコアは非常にマイルド、次のBDSMは何ですか?))))

 
Igor Makanu:

このようなコンパクトなコードを書くことができるのは、このフォーラムでもほんの一握りの人だけです。

(括弧の上に括弧を重ねたのが才能のお姉さんなのか?) まあ、誰にでも自分の意見を言う権利はある。
 
Alexey Navoykov:
(不要な括弧がいっぱいあるのは才能のお姉さんなのか?) しかし、誰もが自分の意見を持つ権利があるのです。

余計なものではありません!表現がどのように形成されるかの論理を読み取るのに役立ちます

括弧の数はスピードに影響しますか?- タイピング速度に影響しない限り、誰も見ていないのですが...。インターネット上の各ユーザーの1日の括弧の数が顕著な例です ))))