__line\u C++ 매크로

__line\u C++ 매크로

2022-06-04 last update

7 minutes reading C++
프로세서는 컴파일링 과정이 시작되기 전에 원본 코드를 가진 프로그램입니다.이 프로세서들은 #define, #include 등 몇 가지 명령을 포함하고 있습니다. 모두 4가지 주요 유형의 프로세서 명령이 있습니다.그중 하나는 매크로입니다.매크로는 특정 이름을 지정한 프로그램에 코드를 포함합니다.컴파일러가 이 이름을 만났을 때, 컴파일러는 이 이름을 실제/실제 코드로 대체합니다."#define"명령은 매크로를 정의합니다.
매크로는 프로그래밍 언어의 코드의 줄임말이다.이러한 매크로는 중복과 중복 인코딩을 피하기 위해 코드를 간소화하고 줄이는 데 도움이 된다.이렇게 하면 중복 인코딩으로 인한 오류도 감소할 수 있다.매크로의 주요 장점은 코드를 변환하고 더 읽을 수 있는 어셈블리 프로그램을 만들 수 있다는 것이다.

매크로 확장


매크로는 이름, 형식 매개 변수 그룹, 코드체를 포함합니다.매크로 이름은 매개 변수 집합과 함께 사용되며 주체가 생성한 코드로 대체됩니다.이것은 매크로 확장을 이루었다.이것은 프로그래머가 위조 조작, 즉 필요한 조작과 프로세서 명령으로 이루어지지 않은 조작을 만들고 정의할 수 있도록 합니다.매크로는 자동 쓰기 프로그램의 특정한 품질을 가지고 있다.이름 매크로는 코드에 키워드로 기록됩니다.함수 호출과 같이 특정 매크로에 대한 호출을 충당합니다.그리고 이 이름은 위에서 설명한 바와 같이 매크로의 다른 코드로 대체됩니다.처리된 복사본으로 호출을 바꾸는 것은 매크로 호출의 확장입니다.또한 C와 C++에서도 사용됩니다.
매크로를 정의한 후 첫 번째 원래 정의를 삭제하지 않으면 다른 값으로 재정의할 수 없습니다.그러나 정의된 매크로와 동일한 정의를 사용하여 매크로를 재정의할 수 있습니다.#unde 명령은 매크로 정의를 삭제합니다.정의를 삭제하면 다른 값을 사용하여 매크로를 재정의할 수 있습니다.

C의 매크로 ++


두 가지 유형이 있습니다.
  • 클래스 객체 매크로
  • 매크로와 유사한 함수
  • 클래스 객체 매크로
    클래스 대상 매크로는 매개 변수를 받아들일 수 없습니다.이것은 값으로 대체된 식별자입니다.그것들은 주로 수치와 상량을 나타내는 데 쓰인다.
    #define Pl 3.17
    Pl은 값 3.17로 대체되는 매크로의 이름입니다.
    클래스 함수 매크로
    이러한 유형의 매크로는 매개변수를 수용할 수 있습니다.이 매크로들은 함수 호출처럼 보인다.예를 들어 Max는 매크로의 이름입니다.
    #define Max(a,b) ((A)
    매크로는 일반적으로 함수 호출을 생성하지 않습니다.C++에서는 내연 함수를 사용하는 것이 좋습니다.

    미리 정의된 매크로


    SVC의 미리 정의된 매크로가 있는 Microsoft C/C++ 컴파일러는 C++ 언어, 컴파일 대상 및 컴파일러 옵션에 의존합니다.MSVC는 ANSI/ISO C99 표준 요구 사항에 대한 사전 정의된 프로세서 매크로를 지원합니다.이러한 미리 정의된 매크로는 매개변수를 사용하지 않으며 재정의할 수도 없습니다.
    많은 미리 정의된 매크로는 C/C++ 소스 코드/프로그램에서 사용할 수 있습니다.여기에는 그 중에서 가장 자주 사용하는 방법들이 묘사되어 있다.
    __ 날짜: _
    이 함수 매크로는 파일의 프로그램 컴파일 날짜를 나타냅니다.날짜는 월-일-년 형식의 문자열로 상수 값입니다.항상 이 유형의 매크로를 정의합니다.
    __시간__
    그것은 예비 처리 단원의 전환 시간을 묘사했다.date와 유사하게, 시간: 분: 초로 쓰기, 되돌아오는 시간과 같은 특정한 형식이 있습니다.
    이러한 유형의 매크로도 항상 정의됩니다.
    __ 파일 _
    이것은 현재 파일의 이름을 나타냅니다.문자열로 확장됩니다.이렇게 하면 파일에 대한 경로를 표시할 수 있습니다.항상 정의된 매크로입니다.
    __ 라인 _
    이것은 현재 원본의 줄 번호를 정수 형식으로 표시합니다.이 매크로는 # 행의 도움말에 따라 다른 매크로와 마찬가지로 정의됩니다.
    이제\uuline\uu C++ 매크로 함수의 예시를 중점적으로 소개합니다.
    __ 라인 _
    이 거대한 작업 원리를 이해하기 위해서 여기서 우리는 하나의 예를 인용했다.먼저 입력과 출력 흐름에 사용되는 라이브러리를 사용합니다.그리고 오류 로그를 유지하기 위해 함수 오류 로그를 사용했습니다.문자열과 메시지 형식의 줄을 받아들일 수 있는 매개 변수가 있습니다.이 기능은 주 프로그램에서 매크로로 전달되는 줄 번호와 메시지를 표시합니다.
    #define LOG( msg ) errorLog( __LINE__, msg )

    그 후에 우리는 매크로를 정의했다.이것은 자주 함수에 대한 메시지 줄 문자열을 받아들일 것입니다. 이 문자열은 이 매크로를 호출할 때 매개 변수로 전달됩니다.이와 유사하게 오류 로그 함수도 라인 매크로와 메시지를 매개 변수로 호출합니다.파일은 의 확장자로 저장됩니다.c 소스 코드 파일.Linux 플랫폼의 결과를 봐야 하기 때문에 터미널로 이동하여 명령을 적용하여 파일을 컴파일하고 실행하십시오.C++의 g++ 컴파일러를 사용합니다.
    $ g++ -o f f.c
    $ ./f

    공백을 사용하더라도 줄 번호는 라인 매크로를 통해 표시됩니다.이 예에서\uuline\uuuu 매크로의 기능을 보았습니다.그러나 다음 예에서는 모든 매크로가 프로그램에 집중됩니다.우리는 "cout"로 선을 인쇄합니다.행마다 다른 매크로가 포함되어 있으며 값이 표시됩니다.예를 들어, 우리가 사용한 날짜:
    Std:: cout << ("Date :%s\n" , __Date) << std ::endl;

    이제 출력을 볼 수 있습니다.각 매크로의 코드를 통해 파일 이름, 컴파일 날짜, 컴파일 시간, 현재 줄 번호를 효과적으로 표시할 수 있음을 알 수 있습니다.

    매크로의 용도/이점

  • 긴 변수 성명을 짧은 변수로 변환할 때 차지하는 공간이 더 적다.
  • 매크로가 현재 문장에 의미를 제공하는 이름과 함께 사용할 때 매크로는 긴 코드보다 이해하기 쉽다.
  • 매크로는 스스로 쓰레기를 치우거나 제거할 수 없습니다.이것은 프로그래머에 달려 있다. 그는 언제 매크로가 종료되도록 설계되었는지 결정하고 두 번째 파일이 쉽게 매크로를 사용할 수 있도록 제거해야 한다.
  • 프로그램의 실행 속도가 향상된 것은 코드에서 매크로를 사용하는 주요한 장점이다.
  • 결론


    "\uuline\uu C++macro"는 매크로의 유형, 미리 정의된 매크로와 그 유형을 묘사함으로써 매크로의 기본 기능을 상세히 논술한 문장이다.하나의 예를 통해 이 모든 기능을 설명하였다.매크로는 실현하기 쉬우며 코드를 컴파일할 때 걸리는 시간이 더 적다.이러한 특성은 기본 원본 프로그램에서 작은 코드를 사용하여 혁신과 조건을 창조하고자 하는 프로그래머들이 설계한 것이다.이를 위해 본고는 마지막으로 매크로가 원본 코드에서의 사용을 소개하고 그것들의 어떤 방면에서의 장점을 묘사했다.