#define 교체

1534 단어 #define# 및 ##

#define 교체


Table of Contents


4
  • 1 # 및 # 4
  • 4
  • 2 매크로와 함수 4
  • 1 번 및 ##


    #argument 이런 구조는 프로세서에 의해'argument'로 번역된다. 이런 번역은 다음과 같이 코드를 작성할 수 있다.
    #define PRINT(FORMAT,VALUE)\
            printf("the value of " #VALUE \
            "is " FORMAT "
    ",VALUE) PRINT("%d",x+3);

    다음 출력이 발생합니다.
    the value of x+3 is 25
    ### 구조는 서로 다른 작업을 수행하며 양쪽에 있는 기호를 하나의 기호로 연결합니다.용도 중 하나로, 분리된 텍스트 세션에서 식별자를 만들 수 있도록 매크로 정의를 허용합니다.다음 예제에서는 이러한 연결을 여러 변수 중 하나에 값을 추가합니다.
    #define ADD_TO_SUM(sum_number,value)\
           sum ## sum_number += value
    ADD_TO_SUM(5,25)
    

    마지막 문장은 값 25를 변수sum5에 추가합니다.이 연결은 반드시 합법적인 표지부를 만들어야 한다는 것을 주의해라.그렇지 않으면 그 결과는 정의되지 않은 것이다.

    2 매크로 및 함수


    매크로는 두 표현식 중 비교적 큰 것을 찾는 등 간단한 계산을 수행하는 데 매우 빈번하게 사용된다.
    #define MAX(a,b) ((a)>(b)?(a):(b))
    

    왜 함수를 쓰지 않고 이 임무를 완성합니까?두 가지 이유가 있다. 첫째, 함수를 호출하고 되돌아오는 코드가 실제 이 소형 계산 작업을 수행하는 코드보다 더 클 가능성이 높기 때문에 매크로를 사용하는 것이 함수를 사용하는 것보다 프로그램의 규모와 속도에 있어서 더 뛰어나다.
    그러나 더욱 중요한 것은 함수의 매개 변수는 반드시 특정한 유형으로 성명해야 하기 때문에 유형에 적합한 표현식에서만 사용할 수 있다.번식, 위의 이 매크로는 정형, 장정형 등 및 기타 >조작부호로 값의 크기를 비교할 수 있는 모든 유형에 사용할 수 있다.다시 말하면 매크로는 유형과 무관하다.
    함수로는 수행할 수 없는 작업도 있습니다.
    #define MALLOC(n,type)\
           ((type*)malloc((n)*sizeof(type)))
    

    Date: 2014-11-24T11:12+0800
    Author: kirchhoff
    Org version 7.9.3f with Emacs version 24 Validate XHTML 1.0

    좋은 웹페이지 즐겨찾기