C# 사전 프로세서 지시문 범위
-
08-07-2019 - |
문제
나는 사용하고 싶다 :
#define
그리고
#if
단위 테스트 중에 잠재적으로 결석 한 하드웨어를 시뮬레이션 할 수 있습니다. 사용하는 규칙은 무엇입니까 #define
진술?
즉 기본 범위는 무엇입니까? 지침의 범위를 변경할 수 있습니까?
다른 팁
에서 MSDN, 그 범위는 파일입니다
모의 물체의 경로를 내려갈 수는 없지만 Ala mock.rhinos ?
예 Chris가 언급했듯이 그 범위는 전체 파일입니다. 파일의 어느 곳에서나 정의 된 키워드를 사용할 수 있습니다.
즉;
#define something
... some code ...
그리고 어떤 방법, 클래스 본문 또는 네임 스페이스에서, 당신은 그것을 사용할 수 있습니다.
#if something
... some conditional code ...
#else
... otherwise ...
#endif
사전 처리기 지침의 범위는 소스에서 구문 분석 될 때 시작되어 달리 지시 될 때까지 지속됩니다. 전처리 서기 지침의 범위를 제한하려면 "undef"선언을 사용하여 전환 할 때 전환하십시오.
#include <iostream>
using namespace std ;
int main()
{
#define someString "this is a string"
cout<<someString<<endl;
#undef someString // scope of someString ends here
cout<<someString<<endl; //this causes a compile error
return 0 ;
}
제휴하지 않습니다 StackOverflow