오류, 버그, 질문 - 페이지 2529

 
A100 :

식별자의 유효한 문자에 대한 질문입니다. 예시

결과적으로:

공백이 있는 변수 식별자 를 받았습니다.

예를 다음과 같이 다시 작성하면:

그러면 우리는 모순을 공식화할 수 있습니다. (1)과 (2)의 차이점은 무엇입니까?

글쎄, 마이크로 리터의 c / c ++의 관점에서 보면 오류입니다. ## 연산자 앞/뒤에 공백/주석을 삽입할 수 있습니다. 먼저 토큰으로 분할된 다음 전처리기가 시작됩니다. 그는 이러한 공간조차 보지 못할 것입니다. 표준(hash_hash)에 예가 있습니다.

 #define hash_hash # ## #
#define mkstr(a) # a
#define in_between(a) mkstr(a)
#define join(c, d) in_between(c hash_hash d)
char p[] = join(x, y);     // equivalent tochar p[] = "x ## y";
 #define MACRO( x )              x ##:AAA

함께 유효한 토큰을 형성하는 토큰만 사용할 수 있습니다.

추신 : 어떤 사람들은 c / c ++가 그들에게 권위가 없다고 말합니다. 그들은 왜 항상 기억되고 있으며 일반적으로 여기가 아니라 ..., 아마도 올바른 설명이 있습니까?

 
Vict :

아마도 그들은 좋은 설명을 가지고 있습니까?

일반적으로 그들은 하나의 설명을 가지고 있습니다. 이것이 현명한 개발자가 의도 한 방법입니다)
 
큰 소스 파일로 작업할 때 ME는 많이 멈춥니다. 30메가바이트의 두 파일은 특히 한 파일에서 다른 파일로 많은 양의 코드를 복사하는 경우 한 파일에서 다른 파일로 전환해도 멈춥니다. 그리고 일반적으로 이러한 파일을 편집하면 느린 동작으로 작업하게 되어 피곤합니다.
 
Aleksey Vyazmikin :
큰 소스 파일로 작업할 때 ME는 많이 멈춥니다. 30메가바이트의 두 파일은 특히 한 파일에서 다른 파일로 많은 양의 코드를 복사하는 경우 한 파일에서 다른 파일로 전환해도 멈춥니다. 그리고 일반적으로 이러한 파일을 편집하면 느린 동작으로 작업하게 되어 피곤합니다.

30MB의 텍스트는 분명히 업무에 필요하지 않습니다. 한 번 고생한 다음 이 데이터를 포함시키십시오.

 
Andrey Khatimlianskii :

30MB의 텍스트는 분명히 업무에 필요하지 않습니다. 한 번 고생한 다음 이 데이터를 포함시키십시오.

데이터는 동일한 유형이며 지속적인 편집이 가능하며 고문 변경의 기초가 됩니다.

 
이 주제와 관련이 없는 주석은 " OOP, mql5의 템플릿 및 매크로, 미묘함 및 사용 기술 "로 이동되었습니다.
 
Aleksey Vyazmikin :
큰 소스 파일로 작업할 때 ME는 많이 멈춥니다. 30메가바이트의 두 파일은 특히 한 파일에서 다른 파일로 많은 양의 코드를 복사하는 경우 한 파일에서 다른 파일로 전환해도 멈춥니다. 그리고 일반적으로 이러한 파일을 편집하면 느린 동작으로 작업하게 되어 피곤합니다.

나는 모든 텍스트 편집기가 이렇게 행동한다고 생각합니다.

어쨌든, 당신은 그러한 거대한 소스를 부분으로 나누거나 코드의 일부를 라이브러리로 다시 작성해야 합니다( library )

 

작은 문제를 도와주세요. 특정 간격으로 어리석게 깜박이는 LABEL을 호출하는 스크립트가 필요합니다. 그게 전부입니다. 깜박이는 빈도를 수행하고 좌표를 직접 지정합니다. 가장 중요한 것은 기능 자체입니다.

예를 찾아 내 필요에 맞게 변경했지만 쓰레기로 판명되었습니다. 그가 원하는 대로 깜박인 다음 1초마다 깜박인 다음 잠시 사라집니다. 그리고 특정 횟수가 아니라 멈출 때까지 스크립트를 실행했으면 합니다.

 for ( int i= 0 ; i< 50 ; i++)
   {
       if (! ObjectCreate ( 0 , "Blink" , OBJ_LABEL , 0 , 0 , 0 ))
   {
       Print ( "Not Create! Error - " , GetLastError ());
   }
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_XDISTANCE , 50 );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_YDISTANCE , 50 );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_CORNER , CORNER_RIGHT_UPPER );
   ObjectSetString ( 0 , "Blink" , OBJPROP_TEXT , "Test" );
   ObjectSetString ( 0 , "Blink" , OBJPROP_FONT , "Arial" );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_FONTSIZE , 18 );
   ObjectSetDouble( 0 , "Blink" , OBJPROP_ANGLE , 0 );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_ANCHOR , ANCHOR_RIGHT_UPPER );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_COLOR ,Red);
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_BACK , false );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_SELECTABLE , false );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_SELECTED , false );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_HIDDEN , true );
   ObjectSetInteger ( 0 , "Blink" , OBJPROP_ZORDER , 0 );
   
   Sleep ( 200 );
   
   ObjectDelete ( 0 , "Blink" );
   
   Sleep ( 200 );
   }
 

편집할 가능성은 거의 없지만 일반적으로 다음과 같은 오류가 있습니다.

 #define A world
#define MAKESTR(L) #L

void OnStart () {
   Alert ( MAKESTR(A) );
}

경고: 세계

예상: 경고: A

 
Igor Makanu :

나는 모든 텍스트 편집기가 이렇게 행동한다고 생각합니다.

어쨌든, 당신은 그러한 거대한 소스를 부분으로 나누거나 코드의 일부를 라이브러리로 다시 작성해야 합니다( library )

EditPad Lite는 기가바이트 파일, 복사 및 편집과 잘 작동합니다. 유틸리티가 정말 마음에 들었습니다. 그리고 그것은 그것이 진짜라는 것을 의미합니다. 초기 로드는 탭을 열 때나, 오랫동안 탭 작업을 하지 않는 경우인데, 지금은 파일을 편집하는 것조차 매우 힘든 상황인 것으로 알고 있습니다.