C 언어
이 튜토리얼에서는 전처리기 지시문, C#에서 사용 가능한 지시문, 그리고 언제, 왜, 어떻게 사용되는지 알아보겠습니다.
이름에서 알 수 있듯이 전처리기 지시문은 실제 컴파일이 시작되기 전에 처리되는 명령문 블록입니다. C# 전처리기 지시문은 컴파일 프로세스에 영향을 주는 컴파일러용 명령입니다.
이 명령은 컴파일할 코드 섹션 또는 특정 오류 및 경고를 처리하는 방법을 지정합니다.
C# 전처리기 지시문은 # (hash)
로 시작합니다. 기호 및 모든 전처리기 지시문은 한 줄 동안 지속됩니다. 전처리기 지시문은 new line
로 종료됩니다. semicolon
가 아닌 .
C#에서 사용할 수 있는 전처리기 지시문은 다음과 같습니다.
전처리기 지침 | 설명 | 구문 |
---|---|---|
#if | 전처리기 표현식이 참인지 아닌지 확인 | #if preprocessor-expression code to compile #endif |
#elif | #if 과 함께 사용 여러 전처리기 표현식을 확인하려면 | #if preprocessor-expression-1 code to compile #elif preprocessor-expression-2 code to compile #endif |
#else | #if 와 함께 사용 복합 조건부 지시문을 생성합니다. | #if preprocessor-expression code to compile #elif code to compile #endif |
#endif | #if 과 함께 사용 조건부 지시문의 끝을 나타내기 위해 | #if preprocessor-expression code to compile #endif |
#define | 기호를 정의하는 데 사용 | #define SYMBOL |
#undef | 기호 정의를 해제하는 데 사용됨 | #undef SYMBOL |
#warning | 코드에서 레벨 1 경고를 생성할 수 있습니다. | #warning warning-message |
#error | 코드에서 오류를 생성하도록 허용 | #error error-message |
#line | 오류 및 경고를 표시하기 위해 컴파일러의 줄 번호와 파일 이름을 수정할 수 있습니다. | #line line-number file-name |
#region | Visual Studio Code Editor를 사용할 때 확장하거나 축소할 수 있는 영역을 만들 수 있습니다. | #region region-description codes #endregion |
#endregion | 영역의 끝을 나타냅니다. | #region region-description codes #endregion |
#pragma | 컴파일러에 파일이 있는 파일의 컴파일을 위한 특수 지침을 제공합니다. | #pragma pragma-name pragma-arguments |
#define
지시문을 사용하면 기호를 정의할 수 있습니다.#if
와 함께 사용될 때 정의되는 기호 지시문은 true로 평가됩니다.#define SYMBOL
#define TESTING여기서 TESTING은 상징입니다.
#undef
지시문을 사용하면 기호 정의를 해제할 수 있습니다.#if
과 함께 사용되는 경우 정의되지 않은 기호 지시문은 거짓으로 평가됩니다.#undef SYMBOL
#undef TESTING여기서 TESTING은 상징입니다.
#if
지시문은 전처리기 표현식을 테스트하는 데 사용됩니다.&&
과 같은 연산자와 함께 기호 조합으로 구성될 수 있습니다. (AND), ||
(또는), !
(아님).#if
지시문 뒤에는 #endif
가 옵니다. 지시.#if
안의 코드 지시문은 표현식이 #if
로 테스트된 경우에만 컴파일됩니다. 참으로 평가됩니다.#if preprocessor-expression code to compile< #endif
#if TESTING Console.WriteLine("Currently Testing"); #endif
#define CSHARP
using System;
namespace Directive
{
class ConditionalDirective
{
public static void Main(string[] args)
{
#if (CSHARP)
Console.WriteLine("CSHARP is defined");
#endif
}
}
}
프로그램을 실행하면 다음과 같이 출력됩니다.
CSHARP is defined
위 프로그램에서 CSHARP
기호는 #define
를 사용하여 정의됩니다. 프로그램 시작 시 지시문. Main()
내부 메소드, #if
지시문은 CSHARP
여부를 테스트하는 데 사용됩니다. 사실인지 아닌지. #if
내부의 코드 블록 지시문은 CSHARP
인 경우에만 컴파일됩니다. 정의됩니다.
#elif
지시문은 복합 조건부 지시문을 생성할 수 있는 #if 지시문과 함께 사용됩니다.#elif
안의 코드 지시문은 표현식이 해당 #elif
로 테스트된 경우에만 컴파일됩니다. 참으로 평가됩니다.#if preprocessor-expression-1 code to compile #elif preprocessor-expression-2 code-to-compile #endif
#if TESTING Console.WriteLine("Currently Testing"); #elif TRAINING Console.WriteLine("Currently Training"); #endif
#else
지시문은 #if
과 함께 사용됩니다. 지시.#if
에 표현식이 없는 경우 및 #elif
(있는 경우) 지시문이 참이면 #else
안의 코드 지시문이 컴파일됩니다.#if preprocessor-expression-1 code to compile #elif preprocessor-expression-2 code-to-compile #else code-to-compile #endif
#if TESTING Console.WriteLine("Currently Testing"); #elif TRAINING Console.WriteLine("Currently Training"); #else Console.WriteLine("Neither Testing nor Training"); #endif
#endif
지시문은 #if
와 함께 사용됩니다. #if
의 끝을 나타내는 지시문 지시.#if preprocessor-expression-1 code to compile #endif
#if TESTING Console.WriteLine("Currently Testing"); #endif
#define CSHARP
#undef PYTHON
using System;
namespace Directive
{
class ConditionalDirective
{
static void Main(string[] args)
{
#if (CSHARP && PYTHON)
Console.WriteLine("CSHARP and PYTHON are defined");
#elif (CSHARP && !PYTHON)
Console.WriteLine("CSHARP is defined, PYTHON is undefined");
#elif (!CSHARP && PYTHON)
Console.WriteLine("PYTHON is defined, CSHARP is undefined");
#else
Console.WriteLine("CSHARP and PYTHON are undefined");
#endif
}
}
}
프로그램을 실행하면 다음과 같이 출력됩니다.
CSHARP is defined, PYTHON is undefined
이 예에서는 #elif
의 사용을 볼 수 있습니다. 및 #else
지령. 이 지시문은 테스트할 여러 조건이 있을 때 사용됩니다. 또한 논리 연산자를 사용하여 기호를 결합하여 전처리기 표현식을 구성할 수 있습니다.
#warning
지시문을 사용하면 코드에서 사용자 정의 레벨 1 경고를 생성할 수 있습니다.#warning warning-message
#warning This is a warning message
using System;
namespace Directives
{
class WarningDirective
{
public static void Main(string[] args)
{
#if (!CSHARP)
#warning CSHARP is undefined
#endif
Console.WriteLine("#warning directive example");
}
}
}
프로그램을 실행하면 다음과 같이 출력됩니다.
Program.cs(10,26): warning CS1030: #warning: 'CSHARP is undefined' [/home/myuser/csharp/directives-project/directives-project.csproj] #warning directive example
위의 프로그램을 실행하면 위와 같은 출력을 볼 수 있습니다. 텍스트는 경고 메시지를 나타냅니다. 여기서 #warning
를 사용하여 사용자 정의 경고 메시지를 생성합니다. 지시.
#warning
뒤의 문장은 지시문도 실행됩니다. #warning
지시문은 프로그램을 종료하지 않고 경고만 발생시킵니다.
#error
지시문을 사용하면 코드에서 사용자 정의 오류를 생성할 수 있습니다.#error error-message
#error This is an error message
using System;
namespace Directive
{
class Error
{
public static void Main(string[] args)
{
#if (!CSHARP)
#error CSHARP is undefined
#endif
Console.WriteLine("#error directive example");
}
}
}
프로그램을 실행하면 다음과 같이 출력됩니다.
Program.cs(10,24): error CS1029: #error: 'CSHARP is undefined' [/home/myuser/csharp/directives-project/directives-project.csproj] The build failed. Please fix the build errors and run again.
위와 같은 몇 가지 오류가 표시됩니다. 여기서 사용자 정의 오류가 생성됩니다.
여기서 주목해야 할 또 다른 사항은 프로그램이 종료되고 #error directive example
#warning
과 같이 인쇄되지 않습니다. 지시.
#line
지시문을 사용하면 오류 및 경고에 대한 줄 번호와 파일 이름을 수정할 수 있습니다.#line line-number file-name
#line 50 "fakeprogram.cs"
using System;
namespace Directive
{
class Error
{
public static void Main(string[] args)
{
#line 200 "AnotherProgram.cs"
#warning Actual Warning generated by Program.cs on line 10
}
}
}
프로그램을 실행하면 다음과 같이 출력됩니다.
AnotherProgram.cs(200,22): warning CS1030: #warning: 'Actual Warning generated by Program.cs on line 10' [/home/myuser/csh arp/directive-project/directive-project.csproj]
위의 예를 Program.cs
으로 저장했습니다. . 경고는 실제로 line 10
에서 생성되었습니다. Program.cs
기준 . #line
사용 지시문에 따라 줄 번호를 200
으로 변경했습니다. 파일 이름은 AnotherProgram.cs
입니다. 오류가 발생했습니다.
#region
지시문을 사용하면 Visual Studio Code Editor를 사용할 때 확장하거나 축소할 수 있는 영역을 만들 수 있습니다.#if
와 겹칠 수 없습니다. 차단하다. 그러나 #region
블록은 #if
내에 포함될 수 있습니다. 블록 및 #if
블록은 #region
과 겹칠 수 있습니다. 차단합니다.#endregion
지시문은 #region
의 끝을 나타냅니다. 차단합니다.#region region-description codes #endregion
using System;
namespace Directive
{
class Region
{
public static void Main(string[] args)
{
#region Hello
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
Console.WriteLine("Hello");
#endregion
}
}
}
프로그램을 실행하면 다음과 같이 출력됩니다.
Hello Hello Hello Hello Hello<시간>
#pragma
지시문은 컴파일러에게 그것이 나타나는 파일의 컴파일에 대한 몇 가지 특별한 지침을 제공하는 데 사용됩니다.#pragma
을 지원합니다. 지침:#pragma warning
:경고 비활성화 또는 활성화에 사용#pragma checksum
:디버깅에 사용할 소스 파일에 대한 체크섬을 생성합니다.#pragma pragma-name pragma-arguments
#pragma warning disable
using System;
namespace Directive
{
class Error
{
public static void Main(string[] args)
{
#pragma warning disable
#warning This is a warning 1
#pragma warning restore
#warning This is a warning 2
}
}
}
프로그램을 실행하면 다음과 같이 출력됩니다.
Program.cs(12,22): warning CS1030: #warning: 'This is a warning 2' [/home/myuser/csharp/directive-project/directive-project.csproj]
두 번째 경고만 출력 화면에 표시됩니다.
이는 처음에 첫 번째 경고 전에 모든 경고를 비활성화하고 두 번째 경고 전에만 복원했기 때문입니다. 이것이 첫 번째 경고를 숨긴 이유입니다.
모든 경고 대신 특정 경고를 비활성화할 수도 있습니다.
#pragma
에 대해 자세히 알아보려면 , #pragma(C# 참조)를 방문하세요.
C 언어
드론은 무인 항공기, 즉 조종사가 탑승하지 않은 항공기입니다. 일반적으로 원격 제어가 가능하지만 자율 드론은 개발 단계에 있습니다. 그 기원은 군사용이지만 현재는 오락용으로, 최근에는 산업용용으로 사용됩니다. 목적. 산업에서 드론을 사용하는 것은 사실이며 감독, 기반 시설 검토 및 운송을 크게 용이하게 하기 때문에 많은 분야에 적용됩니다. 드론은 이미 Industry 4.0의 일부입니다. 이전에는 불가능했던 작업을 자동화하여 위험을 크게 줄이므로 산업 프로세스의 개선으로 간주됩니다. 산업용 드론 유형 드론을 구성하는 날개의
인더스트리 4.0이 무엇인지 이미 알고 계실 것입니다. , 장점 , 애플리케이션 산업 자동화에 어떻게 부합하는지 . 이 게시물에서는 미래(그리고 현재)의 작업자가 4.0 기술에 대해 심층적으로 알고 있어야 하기 때문에 어떻게 될 것인지 알려줍니다. 인더스트리 4.0은 근로자에게 어떤 영향을 미칩니까? 인더스트리 4.0은 직업에 따라 다른 영향을 미친다. 많은 직책이 자동화되는 것이 사실이지만, 새로운 직책은 프로그래머, 개발자, 자동화 및 시스템 엔지니어로 만들어질 것입니다. 사람의 속도, 직관, 판단력이 필요하고 부가가치를 제