"ダミー "からの質問 - ページ 104

 
220Volt:
ありがとう、ひいじいちゃんの本を燃やす時が来たようだ )))

歴史から:曾祖父の本は特に古いソフトの互換性のためにlong=intを残している。

一時は、「役に立たない」longをintのままにして、非人間的なint64(またはlong int)を導入するか、純粋なlongを使って「正しく」やるか、という決断もしました。その結果、longを64ビット整数として使用するのが正しい手順であると判断しました。

Longは他のシステムでは32bitとは限りません。同じコンパイラでも、アーキテクチャが異なれば、使用するサイズも異なる。それがIntel C++にはあるのです。

The size of a "long" integer varies between architectures and operating systems.

The Intel Compiler is compatible and inter-operable with Microsoft* Visual C++ on Windows* and
with gcc* on Linux* and Mac OS X*. Consequently, the sizes of fundamental types are the same as
for these compilers. The size of  a long integer in particular depends on the operating system
and the targeted architecture as follows:

   OS         arch           size
----------------------------------
Windows       IA-32        4 bytes
Windows       Intel 64     4 bytes
Windows       IA-64        4 bytes
Linux         IA-32        4 bytes
Linux         Intel 64     8 bytes
Linux         IA-64        8 bytes
Mac OS X      IA-32        4 bytes

Mac OS X        Intel 64       8 bytes


MQL5では、32ビットでも64ビットでも同じ動作が要求されるx64ビット互換アーキテクチャを採用しています。longが64bitなのは、そのためでもあります。


もう少し歴史を振り返ってみると、MSDOSの時代、intは16ビットで、16ビットコンパイラではshortと等しかった。プログラマが32ビットプラットフォームに移行したとき、intは32ビットに拡張され、shortと等しくなった。特に不満はなかったようです。64ビットに移行したとき、longはintから切り離されなければなりませんでした。そして、論理的である。

 

MqlRates rates[];

過去3本のバーからrates[].highの最大 値を求める必要があります。

構造体にArrayMaximumを 適用する方法がわからないのですが?

 
dentraf:

MqlRates rates[];

過去3本のバーからrates[].highの最大 値を求める必要があります。

構造体にArrayMaximumを 適用する方法がわからないのですが?

私の知る限り、この関数は数値配列に対してのみ動作するので、構造体をいじるための独自の関数を書いてください。
 
dentraf:

MqlRates rates[];

過去3本のバーからrates[].highの最大 値を求める必要があります。

構造体にArrayMaximumを 適用する方法がわからないのですが?

double MaxHigh(const MqlRates& rates,int &index)
  {
   double max=0.0;
   index=-1;
//--- check
   if(ArraySize(rates)<3) return(EMPTY_VALUE);
//--- loop
   for(int i=0;i<3;i++)
      if(max<rates[i].high)
        {
         max=rates[i].high;
         index=i;
        }
//--- result
   return(max);
  }
こんな感じです。ArrayMaximumは構造体に適用されない。
 
uncleVic:
こんな感じ。ArrayMaximumは構造体に適用されない。
ありがとうございました。
 

どういう意味?

CExpertBase::SetOtherSeries: タイムスケールの変更が禁止されている

 
CExpertBase::SetOtherSeries: タイムスケールの変更は禁止されています
これは何を意味するのでしょうか?
 

教えてください。

与えられた。

  • 2つのプロセス(#1、#2)。
  • が並行して動作しています。
  • UE のメモリ空間。
  • は、ある瞬間(1サイクル)において、以下のことを行おうとする。

1.UEにNo.1ライト、No.2リードを行う。

2.UEに#1,#2を書き込む。

質問:どのような状況で対立しているのでしょうか?1のケースに興味があるのですが、正常とみなしていいのでしょうか、それともアクセス制限をかけるべきでしょうか?1番目のケースは良くないと思われるが、競合はどのようなものになるのか、不明確な価値、あるいはもっと深刻なものを期待するのか。

 
openlive:
CExpertBase::SetOtherSeries: タイムスケールの変更は禁止されています。
これはどういうことでしょうか?
もうちょっと詳しく...ログの次の行(できれば数行)は何でしょうか?
 

220Volt:

質問:どのような状況がコンフリクト状況なのでしょうか?私はケース1に興味があるのですが、これは正常といえるのでしょうか、それともアクセス制限をかけるべきなのでしょうか?ケース1は良くないと思われます。競合はどのようなものでしょうか、不明確な値でしょうか、それとももっと深刻なものを期待すべきでしょうか。

両方の状況が相反し、価値が不明確になります。