찻주전자의 질문 - 페이지 104

 
220Volt :
고마워, 증조할아버지 책을 태울 때가 된 것 같아))))

역사에서: 증조할아버지의 책에서 long = int는 이전 소프트웨어의 호환성을 위해 특별히 남겨졌습니다.

우리는 또한 한 번에 "쓸모없는" long을 int로 남겨두고 비인간적인 int64(또는 long int)를 도입하거나 순수한 long을 사용하여 "올바르게" 수행하기로 결정했습니다. 결과적으로 우리는 순도를 위해 long을 64비트 정수로 사용하여 올바르게 수행하는 것이 합리적이라고 결정했습니다.

long은 다른 시스템에서 항상 32비트가 아닙니다. 다른 아키텍처에 대해 동일한 컴파일러라도 다른 크기를 사용합니다. 인텔 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에서 x64비트 호환 아키텍처를 사용하므로 32비트와 64비트 모두에서 동일한 동작이 필요합니다. long은 64비트이므로 이러한 이유에서입니다.


조금 더 역사를 살펴보면 MSDOS 시절, 16비트 컴파일러에서 int는 16비트였으며 short와 동일했습니다. 32비트 플랫폼으로 이동할 때 int는 short에서 벗어나 32비트로 확장되었습니다. 불만은 없었던 것 같습니다. 64비트로 전환할 때 long은 int에서 분리되어야 했습니다. 그리고 이것은 자연스럽습니다.

 

Mql 요금[];

마지막 세 막대의 비율[].high에서 최대값을 찾아야 합니다 .

구조체에 ArrayMaximum을 적용하는 방법을 모르겠습니다.

 
dentraf :

Mql 요금[];

마지막 세 막대의 비율[].high에서 최대값을 찾아야 합니다 .

구조체에 ArrayMaximum을 적용하는 방법을 모르겠습니다.

내가 아는 한, 이 함수는 숫자 배열에서만 작동하므로 구조를 선택하는 함수를 직접 작성하십시오.
 
dentraf :

Mql 요금[];

마지막 세 막대에서 rate[].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: 시계열 변경 금지
이것은 무엇을 의미할 수 있습니까?
 

말해 주세요.

주어진:

  • 두 가지 프로세스(1번과 2번);
  • 병렬로 실행
  • UE 메모리 영역;
  • 한 순간에(한 주기에서) 프로세스는 다음을 수행하려고 합니다.

1. UE에 1번을 쓰고 2번을 읽습니다.

2. 1번 및 2번은 UE에 기록합니다.

질문: 갈등 상황은 무엇입니까? 저는 1번 사례에 더 관심이 있습니다. 이것이 정상이라고 가정할 수 있습니까, 아니면 액세스를 제한해야 합니까? 1번의 경우가 좋지 않은 것 같은데, 갈등이 어떤 모습일지, 이해할 수 없는 가치인지, 아니면 더 심각한 상황을 기대해야 할까요?

 
openlive :
CExpertBase::SetOtherSeries: 시계열 변경 금지
이것은 무엇을 의미할 수 있습니까?
조금 더.. 로그의 다음 줄(여러 개)은 무엇입니까?
 

220Volt :

질문: 갈등 상황은 무엇입니까? 저는 1번 사례에 더 관심이 있습니다. 이것이 정상이라고 가정할 수 있습니까, 아니면 액세스를 제한해야 합니까? 1번의 경우가 좋지 않은 것 같은데, 갈등이 어떤 모습일지, 이해할 수 없는 가치인지, 아니면 더 심각한 상황을 기대해야 할까요?

두 상황이 충돌하고 이해할 수없는 가치가 드러날 것입니다.