> 백엔드 개발 > C++ > 연산자 없이 C/C에서 매크로 정의 문자열을 어떻게 연결할 수 있습니까?

연산자 없이 C/C에서 매크로 정의 문자열을 어떻게 연결할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-07 06:32:18
원래의
637명이 탐색했습니다.

How Can I Concatenate Macro-Defined Strings in C/C   Without the  Operator?

C/C에서 매크로 기반 문자열 연결

C/C에서 매크로 정의 문자열을 직접 연결하는 것은 ##을 사용하여 불가능합니다. 주로 토큰 연결을 위한 전처리기 연산자입니다. 그러나 이를 달성하기 위한 해결 방법이 있습니다.

다음 예를 고려하십시오.

#define STR1      "s"
#define STR2      "1"
#define STR3      STR1 STR2
로그인 후 복사

이 코드는 세 가지 매크로를 정의합니다. 문자열 리터럴 "s"가 있는 STR1, "1"이 있는 STR2, STR3은 STR1과 STR2의 연결입니다. STR3을 확장하면 다음과 같은 결과가 발생합니다.

#define STR3 "s" "1"
로그인 후 복사

그러나 C 언어에서 공백으로 구분된 두 문자열(예: "s" "1")의 병치는 단일 문자열 "s1"과 동일합니다. .

따라서 다음 코드는 ## 없이 STR1과 STR2를 직접 연결합니다. 연산자:

#define STR3 STR1 STR2
로그인 후 복사

다음으로 확장됩니다.

#define STR3 "s1"
로그인 후 복사

위 내용은 연산자 없이 C/C에서 매크로 정의 문자열을 어떻게 연결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿