IT공부/IT서적

[윤성우 열혈 C프로그래밍] 매크로 # 연산자(P572 ~ P575)

shine94 2025. 2. 11. 14:58

* # 연산자

   C 전처리기에서 매크로의 매개변수를 문자열 리터럴로 변환하는 연산자

   해당 연산자를 사용하면 매개변수가 문자열로 변환되며,

   전달된 값이 문자열 리터럴("")이라면 큰 따옴표, 문자 리터럴('')이라면 작은 따옴표가 유지

 

1. MacroOpToString.c의 결과값은 예제 코드와 다름

   만약 예제와 같이 출력하고자 한다면 #A"의 직업은 " #B"입니다." 가 아니라 A"의 직업은 " B"입니다."로 기입해야 한다

   ㄴ chatgpt 확인 결과,

       C 표준이 변한 것이 아니라,

       과거부터 # 연산자는 매개변수를 문자열로 변환할 때

       문자는 작은따옴표('), 문자열은 큰따옴표("), 숫자는 그대로 출력하는 것이 정상적인 동작임

       VS2010이 비표준 처리를 했을 가능성이 크지만, 이를 직접 확인할 방법 없음

       (현재 MS에서 제공하는 최소 버전은 VS2019)

 

2. UnivStdNum.c은 설명과 다르게 안된다는 것도 정상 잘 작동함