2017-04-26 3 views
-4

C++의 코드에서 작업하고 있지만 어떤 코드가 a[set][i]++;인지 잘 모르겠습니다. 해당 배열에있는 값이 1 씩 증가했다고 가정했지만 확실하지 않습니다.
또한 코드에서 assert(0);의 기능은 무엇입니까? 도움 주셔서 감사합니다.C++에서 2D 배열에 대한 증가는 무엇입니까? assert (0) 함수는 무엇을하고 있습니까?

코드 블록은 다음과 같습니다

for (i=0; i<1S; i++) 
{ 
    if (a[637][i] < a[637][15]) 
     { 
      a[637][i]++; 
      if (a[637][i] == 15) 
      assert(0); 
     } 
    } 
a[637][15] = 0; 

편집 : 내가 배경을 언급하는 것을 잊었다 죄송합니다.
a의 정의는 uint32_t a[2048][16];입니다. 따라서 637과 i는 특정 루프의 값으로, 다른 2D 배열과 비교 한 후 퇴출 할 라인을 선택합니다. 이것은 캐시 교체 정책을위한 것이지만 나는 그 경우에 호기심이 많았다. 감사!

+2

나는 그것을 쓴 사람을 해고하는 것이 좋습니다. – crashmstr

+0

Assert는 방정식을 평가하고 실패 할 경우 메시지 유무에 관계없이 중단하는 데 사용됩니다. https://msdn.microsoft.com/en-us/library/9sb57dw4.aspx. – Nightforce2

+0

배열 a의 정의를 보여줄 수 있습니까? assert는 매크로 NDEBUG가 정의되어 있지 않으면 인수가 false (즉, 0) 인 경우 컴파일을 중지하는 c 함수입니다. – Outshined

답변

0

a[637][i]++은 2 차원 배열 a의 셀 637/i의 값을 증가시킵니다.

assert(0)은 조건 (0은 어서 트가 충족되지 않음을 정의하는 false을 의미하므로이 지점에서 프로그램 실행을 중단합니다. 자세한 내용은 SO answer을 전달하십시오.