문제

Delphi에서는 컴파일러 지침을 사용하여 특정 경고를 비활성화 할 수 있습니다.

{$WARN USE_BEFORE_DEF OFF}

그러나 indentscore_style_name의 특정 힌트로 그렇게하려고했을 때 도움을 주었을 때 Compiler는 {$ hint}가 무엇인지 모른다고 말했습니다. 그래서 이것을 할 방법이 있습니까?

도움이 되었습니까?

해결책

구체적인 힌트는 없지만 모두 비활성화 할 수 있습니다.

{$HINTS OFF}
procedure MyProc;
var
  i : integer;
begin
  DoSomething;
end;
{$HINTS ON}

다른 팁

작은 주제 : 컴파일러의 힌트와 경고를주의해야합니다. 그들은 단지 재미를위한 것이 아닙니다. 컴파일러는 단지 "소스 코드가 정확하지 않기 때문에 프로그램이 다르게 작동 할 수 있습니다"라고 말합니다.

정말로 안전하게 연주하기 위해 다음과 같은 일을하고 싶습니다.

function TopazGetText(const _s: string): string;
begin
{$IFOPT <something>+}
{$DEFINE HINTS_WERE_ON}
{$HINTS OFF}
{$ELSE}
{$UNDEF HINTS_WERE_ON}
{$ENDIF}
  Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
{$IFDEF HINTS_WERE_ON}
{$HINTS ON}
{$ENDIF}
end;

불행히도 힌트가 꺼져 있는지 여부를 확인하는 컴파일러 지침이없는 것 같습니다. (H+는 힌트가 아니라 긴 줄을위한 것입니다). 또한 힌트 오프 / 켜기는 함수 / 절차 내에서 작동하지 않습니다.

따라서 전체 기능을 위해 힌트를 끄고 무조건적으로 전환하게됩니다.

{$HINTS OFF}
function TopazGetText(const _s: string): string;
begin
  Result := dzDGetText(_s, TOPAZ_TRANSLATION_DOMAIN);
end;
{$HINTS ON}

(컴파일러는이 경우에 신경 쓰지 않는 DZDGETTEXT를 인라인 할 수 없다고 말하는 데 사용했으며, 이것이 중요한 힌트에 관심을 갖기 위해 저 (및 동료)가 멈출 수 있기 때문에 힌트를보고 싶지 않습니다. .))

내가 생각할 수있는 가장 좋은 것은 힌트의 주제를 조건부 정의로 둘러싸고 아래와 같이 필요하거나 필요하지 않을 수도있는 코드 주위에 동일한 조건부 정의를 사용하는 것입니다.

당신이 이것을 가지고 있다면 :

procedure MyProc;
var
  i : integer;
begin
  DoSomething;
  //SomethingWith_i_IsCommentedOut;
end;

당신은 얻을 것입니다 :힌트 : 변수 "i"는 선언되었지만 사용되지 않았습니다.

그러니 대신 시도해보십시오.

procedure MyProc;
  {$IFDEF USE_THE_I_PROCEDURE}
var
  i : integer;
  {$ENDIF}
begin
  DoSomething;
  {$IFDEF USE_THE_I_PROCEDURE}
  SomethingWith_i_IsCommentedOut;
  {$ENDIF}
end;

이제 정의를 켜거나 끌 수 있으며 힌트를 얻지 않아야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top