문제

msdn 이것을 얻을:

#pragma warning disable warning-list
#pragma warning restore warning-list

예제에서,모두 disablerestore 사용됩니다.는 것이 필요하다 restore 나는 그것을 원한다면 비활성화에 대한 전체 파일입니까?

좋아하지 않는 경우에,나는 복원,는 방법까지 않을 수행?은 경고는 장애인에 대한 모든 컴파일된 후에는가?위해 또는 그냥 나머지는요?거나 그것을 무시하는 겁니까?

도움이 되었습니까?

해결책

복원하지 않으면 파일의 나머지 부분에 대해 비활성화가 활성화됩니다.

흥미롭게 도이 행동입니다 ~ 아니다 정의 언어 사양. (섹션 9.5.8 참조) 그러나 조건부 편집 기호에 대한 9.5.1 섹션은 "파일 동작 종료까지"이를 나타냅니다.

동일한 기호에 대한 #undef 지시문이 처리 될 때까지 또는 소스 파일의 끝이 도달 할 때까지 기호는 정의되어 있습니다.

'사전 프로세서'가 실제로 편집의 어휘 분석 단계의 일부라는 점을 감안할 때,이 동작은 예측 가능한 미래를위한 Microsoft 및 기타 모든 구현에 대한 효과적인 계약 일 가능성이 높습니다 (특히 대체는 매우 복잡하고 결정적이지 않기 때문입니다. 소스 파일 컴파일 순서)

다른 팁

말하자 나는 프라이빗 필드를 암호화하는 알고리즘을 사용하여 반영,컴파일러는 물론 찾을 수 없는 어떤 직접 코드로 쓰이장 그래서 그는 경고를 표시합니다-나는 원하지 않습니다.

의도가 다른 개인 정의된 필드 3 선 첫 번째 아래 내가 초기화,내가 사용하지 않으면 경고에 대한 전체 파일이 트리거하지 않습니다.

그래서,최고의 사용에#pragma 경고하는 것이"경고"사용하지 않도록하기 전에 오른쪽 라인의 원인 경고 원하는 표시하지 않고"경고"복원 후에 바로 라인 그래서 동일한 조건에서 다른 위치에서 파일이 여전히 트리거합니다.

아니요, 컴파일러가 소스 파일을 구문 분석 한 후에는 비활성화 된 경고를 자동으로 복원한다는 것을 알 수 있습니다.

#pragma warning disable 649
struct MyInteropThing
{
    int a;
    int b;
}
#pragma warning restore 649

위의 예에서는이 구조물을 안전하지 않은 방식으로 사용하려고하기 때문에 경고 CS00649를 돌 렸습니다. 컴파일러는 이런 종류의 레이아웃이있는 메모리에 글을 쓸 것이라는 사실을 알지 못하므로 경고를 무시하고 싶습니다.

필드 '필드'는 결코 할당되지 않으며 항상 기본값 '값'을 갖습니다.

그러나 나는 전체 파일이 확인되지 않은 상태로 두지 않기를 원하지 않습니다.

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