728x90
반응형
C#에서 전처리는 C와 동일하다. 아래코드를 보자.
#define TEST_1
#undef TEST_2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp_Processor
{
class Program
{
static void Main(string[] args)
{
#if TEST_1
Console.WriteLine("TEST_1 define");
#else
Console.WriteLine("TEST_1 Not define");
#endif
#if TEST_2
Console.WriteLine("TEST_2 define");
#elif TEST_3
Console.WriteLine("TEST_3 define");
#else
Console.WriteLine("Not define ");
#endif
}
}
}
C에서 사용하는 전처리와 동일하게 해석하면된다. 첫번쨰 #if에서 TEST_1이 정의되어 있는지 확인한다. 맨 윗줄에 보면 #define TEST_1으로 선언되어 있다. "TEST_1이 정의되어 있다."로 해석할 수 있다. 따라서 #if TEST_1아래 코드를 실행한다.
다음으로 #if TEST_2를 보자. 코드 상단에 #undef TEST_2로 선언되어 있다. "TEST_2가 정의되어 있지 않다."로 해석할 수 있다. TEST_2가 정의되어 있지 않기 때문에 아래줄의 #elif TEST_3을 확인할 것이다. TEST_3은 선언되어 있지 않기 떄문에 아래 #else 의 아래줄을 실행할 것이다.
#define / #undef 를 정의할때 주의사항은 반드시 소스코드 최상단에 위치해야된다는 점과 DEBUG를 정의하면 안된다는것이다. DEBUG로 정의해보니 안된다.
- 끝 -
728x90
반응형
'Programming language > C#' 카테고리의 다른 글
[그냥 따라하는 C#] C# 타이머, C# timer, C# Timer Thread, C# 타이머 쓰레드 (0) | 2022.07.31 |
---|---|
[그냥 따라하는 C#] TextBox 배경색 변경하기, Textbox BackColor (0) | 2022.07.18 |
[그냥 따라하는 C#] #region, #endregion (0) | 2022.07.12 |
[그냥 따라하는 C#] chart 컨트롤, 차트 만들기, 그래프 만들기_1 (0) | 2022.06.23 |
[그냥 따라하는 C#] C# 프로젝트 만들기, winform프로젝트 만들기 (0) | 2022.06.22 |