記事「初級から中級へ:Includeディレクティブ」についてのディスカッション

 

新しい記事「初級から中級へ:Includeディレクティブ」はパブリッシュされました:

本日の記事では、MQL5のさまざまなコードで広く使用されているコンパイルディレクティブについて解説します。本稿ではこのディレクティブについて表面的な説明に留めますが、今後プログラミングレベルが上がるにつれて不可欠なものとなるため、使い方を理解し始めることが重要です。ここで提示されるコンテンツは、教育目的のみを目的としています。いかなる状況においても、提示された概念を学習し習得する以外の目的でアプリケーションを閲覧することは避けてください。

この記事では、あなたにとって非常に役立つトピックを取り上げます。説明が終われば、より洗練されたコード例を紹介できるようになるでしょう。これまで、MQL5で利用できる特定のリソースを使わずにコードを書くことは苦痛でした。読者の中には「簡単そうに見えた」と思う方もいるかもしれませんが、実際にはかなり大変だったのです。しかしこれから、すでに実現可能な機能に加え、さらに新しいリソースを導入していきます。

ここで紹介するリソースとは、「コンパイルディレクティブ」です。これらのディレクティブなしでは、できることが大きく制限され、実際の開発現場では不必要に多くのコードを書く羽目になってしまいます。

多くの方が思っているのとは逆に、コンパイルディレクティブはコードを複雑にするものではありません。むしろ、コードをよりシンプルに、より高速に、そして扱いやすく、修正しやすくするためのものです。問題は、多くの初心者がこのリソースの使い方を学ばない、あるいは軽視してしまうことにあります。これは、JavaScriptやPythonのように、コンパイルディレクティブを持たない言語に親しんでいる人に特によく見られます。これらの言語はカジュアルなプログラマーの間で人気ですが、特定の種類のアプリケーション開発には適していないこともあります。しかし、本稿の目的はこれらの言語を論じることではありません。MQL5に焦点を当て、学習を進めていきましょう。それでは、この記事の最初のトピックに入ります。

作者: CODE X

 

またしても筆者の戯言である。引用:"しかし、C/C++にはMQL5では使えないディレクティブがいくつかある。その1つが#ifdefで、一見面白みがないように見えるかもしれないが、作業中のバージョンの特定の部分を制御するのに非常に役立つ瞬間がある。"

#ifdefは、MQL4とMQL5では非常に長い間使われてきた。

#define  PRINT

int OnInit()
{
#ifdef  PRINT
    Print(「MQL5のifdefは");
#endif     
    return(INIT_SUCCEEDED);
}
 
Alexey Volchanskiy #:

またしても筆者の戯言である。引用:"しかし、C/C++にはMQL5では使えないディレクティブがいくつかある。その1つが#ifdefで、一見面白みがないように見えるかもしれないが、作業中のバージョンの特定の部分を制御するのに非常に役立つ瞬間がある。"

#ifdefは、MQL4とMQL5では非常に長い間使われてきた。

🤦‍♀️。

 
Alexey Volchanskiy #:

またしても筆者の戯言である。引用:"しかし、C/C++にはMQL5では使えないディレクティブがいくつかある。その1つが#ifdefで、一見面白みがないように見えるかもしれないが、作業中のバージョンの特定の部分を制御するのに非常に役立つ瞬間がある。"

#ifdefは、MQL4とMQL5では非常に長い間使われてきた。

アレクセイ・ヴィクトロフ#:

🤦‍♀️。

ベースでのニックネームはvDev!

レカ - スカルプテストをしよう!!!!)

 
Alexey Volchanskiy # :

この著者は、新たな挑戦を続けています。C/C++ には MQL5 にはないディレクティブがいくつかあります。そのうちのひとつが#ifdefで、退屈に思えるかもしれませんが、いくつかの部分で、私たちが作業しているバージョンのある部分を制御するのに役立っています。"

#ifdefはMQL4やMQL5ではかなり前から使われています。

申し訳ない。しかし、本文中でこのディレクティブを参照したのは私のミスでした。というのも、#ifdef指令はCやC++にある#if defined指令に相当するからだ。しかし、MQL5では一般化するために、CやC++にもある#ifdefを使用しています。ここでも、目的は#ifディレクティブを参照することである。#ifディレクティブはまったく異なる目的を持ち、定義の値をチェックするために使うこともできる。しかし、私の書き方のミスで#ifdefと書いてしまい、それに気がつきませんでした。私のこの見落としをお詫びします。👍

 
CODE X #:

申し訳ない。しかし、本文中のディレクティブへの言及に私の誤りがありました。というのも、#ifdefディレクティブはCやC++に存在する#if definedディレクティブに相当するからです。しかし、MQL5では一般化するために、CやC++にも存在する#ifdefを使います。ここでも、目的は#ifディレクティブを参照することである。#ifディレクティブはまったく異なる目的を持ち、定義の値をチェックするために使うこともできる。しかし、私の書き方のミスで#ifdefと書いてしまい、それに気がつきませんでした。私のこの見落としをお詫びします。👍

大丈夫です、誰にでもそういう時はあります )

 
Alexey Viktorov #:

🤦‍♀️

偶然この記事を見つけた。サイトがリンク集で教えてくれたのだ。