본문 바로가기
C

# 및 ## (C 언어 매크로 연산자)

by yororing 2024. 6. 25.

00 개요

  • 목적: #와 ##가 C 언어로 작성된 파일에서 어떤 기능을 갖고 있는지 정리하고자 함
  • C 언어 전처리기(preprocessor)는 코드 컴파일 전에 미리 처리하는 단계로, #define 지시문을 통해 매크로를 정의할 수 있음
  • C 언어의 #define 지시문 안에서 사용되는 매크로의 # 및 ## 연산자에 대한 내용

01 # 연산

1. 정의

  • 치환(substitute)의 역할을 함

2. 예시

#include <stdio.h>
#define STRING_NAME(A, B) #A "의 나이는 " #B "세입니다."

main() {
    printf(STRING_NAME(저, 100));
}

02 ## 연산

1. 정의

  • 결합(combine)의 역할을 함

2. 예시

#include <stdio.h>
#define CONCAT(a, b) a ## b

main() {
    int num1 = 10, num2 = 20;
    int result = CONCAT(num, 1) + CONCAT(num, 2);
    printf("결과: %d\n", result);
}

 

참조

  1. https://newcodingman.tistory.com/entry/C%EC%96%B8%EC%96%B4-%EB%A7%A4%ED%81%AC%EB%A1%9C-%EC%97%B0%EC%82%B0%EC%9E%90-%EA%B0%95%EB%A0%A5%ED%95%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EA%B2%B0%ED%95%A9-%EA%B8%B0%EB%8A%A5 
  2.  
  3.  
  4.  

'C' 카테고리의 다른 글

매크로 함수, 인라인 함수(#define, #inline)  (0) 2024.06.25
Macro (매크로)  (0) 2024.06.25
자료형 종류 (C 언어)  (0) 2024.06.24
Local vs Global Variable (지역 vs 전역 + static 변수)  (0) 2024.06.24
extern와 static (키워드)  (0) 2024.06.24