[C#] 전처리기 지시문
[C#] 전처리기 지시문
하나의 소스코드파일로 여러가지 상황을 만족하는 프로그램을 만들때 사용.
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)
{
String txt = Console.ReadLine(); //엔터가 눌릴때까지 키보드입력을 받는 역할
if( string.IsNullOrEmpty(txt) == false) // null이거나 empty 인경우 true 를 반환한다.
{
Console.WriteLine("사용자입력" + txt);
}
#if OUTPUT_LOG
else
{
Console.WriteLine("입력되지않음");
}
#endif
}
}
}
전처리기 지시문 : 소스코드를 나누어 컴파일할때 중복 소스를 방지하고자 사용
#if 상수(전처리상수) / #endif 를 사용
[OUTPUT_LOG가 정의되지 않은 컴파일]
csc program.cs
[OUTPUT_LOG가 정의된 컴파일]
csc /define:OUTPUT_LOG program.cs
비쥬얼스투디오에서는 솔루션탐색기 - 프로젝트항목 선택 - 속성-빌드-조건부컴파일기호에 OUTPUT_LOG를 입력
#define __X86__
#undef OUTPUT_LOG
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 OUTPUT_LOG
Console.WriteLine("OUTPUT_LOG 가 정의됨");
#else
Console.WriteLine("OUTPUT_LOG 가 정의안됨");
#endif
#if __X86__
Console.WriteLine("__X86__정의됌");
#elif __X64__
Console.WriteLine("__X64__정의됌");
#else
Console.WriteLine("아무것도 정의안됌");
#endif
}
}
}
결과
#define / #undef 문은 반드시 소스코드보다 먼저 나타나야한다.
댓글
댓글 쓰기