The C Pre-Processor (CPP) is the somewhat basic macro system used by the C programming language to implement features such as and which allow very simple text-substitutions to be carried out at compile time. In this article we abuse the humble to implement if-statements and iteration. Before we begin, a disclaimer: these tricks, while perfectly...
コメントにあるような普通の名前はどうなんだろう?
ところで、mqlプリプロセッサーにエラーがあるようです。
が 'i nt ll;' と展開され、エラーとなる。
'i nt' - undeclared identifier t_t_t.mq4 50 1
列挙のコメントについてですが、理論的にはCプリプロセッサにツッコミを入れるはずです。だから、仮にコメントを詰め込むことができたとしても、その効果は期待できないだろう。良い意味で、構文を変え(例えば_cmnt_に)、コメントを引っ張ってくるプリプロセッサでCプリプロセッサの呼び出し順序を変えるべきでしょう。そのような改革が行われる見込みは低いと思います ))
ところで、mqlプリプロセッサーにエラーがあるようです。
が 'i nt ll;' と展開され、エラーとなる。
Dynamic ENUMは内部用で、設定画面には表示されません。通常の名前/コメントはあまり必要ない
最後の方法は、enumと値の配列を返す関数について、空白を手書きする必要がありました。それを解明して、不要になったものを書くことにしたのです。ただし、mqlでコンパイルできない、引数の数が可変のマクロはないが、理論的には出現する可能性がある。とにかく、こんな感じです。
Выхлоп printf:
----enum1-----
1
3
65
90
----enum2-----
100
-3
21
----enum3-----
871
213
226
// emum1 の生成コード
// enum enum1{
// q = 1,
// e = 3,
// t = 65,
// z = 90,
// };
、 // unsigned get_enum1_array(int *ar){
// int temp[] = { q, e, t, z, };
// if(ar != NULL)
// for(unsigned i = 0; i < sizeof(temp) / sizeof(int); ++i){
// ar[i] = temp[i]; }
// return sizeof(temp) / sizeof(int);
// } }.
このテーマに関する記事http://jhnet.co.uk/articles/cpp_magic. もちろん、たくさんの魔法を駆使して。しかし、この技術はプリプロセッサのコード生成に言及する幅広いタスクに有効である。
スレッドを興味深く読ませていただきました、どれもマクロでとてもかっこいいですね。
なぜenumでこんなにも踊る必要があるのか、はっきりしないのです。具体的な例を教えてください。
TFについてはクリアしていますが、他には?
しかし、mqlではコンパイルできないし、引数の数が可変のマクロはないが、理論的には出現しうる。
MQL5では、マクロは引数の数が決まっているだけでなく、その数は8個に制限されているので、3つの値しかないenumを作ることができます。
理論的な外観については、開発者がすでに何かを約束したように、enumのパースのためのインハウス関数を取得する方が早いでしょう。
MQL5では、マクロは引数の数が決まっているだけでなく、その数は8個に制限されているので、3つの値だけを対象としたenumを作ることができます。
理論的な見栄えとしては、enumのパース用の関数を社内で用意した方が早いかもしれません。 開発者はすでに何かを考え出すと約束しています。
先に提案した、配列を用いた列挙方法を用いる。
列挙型値列挙のためのイテレータは予定していない。
先に提案した、配列を使って値を列挙する方法を使います。