하는 방법으로 변환 부호 없는 변수를 정의에서는 서명을 정의 변수에 C
-
21-12-2019 - |
문제
#define VERSION 1U
#define _VALUE_TO_STRING(x) #x
#define VALUE_TO_STRING(var) _VALUE_TO_STRING(var)
#define VERSION_STRING VALUE_TO_STRING(VERSION)
char readMe[] = "The current version of this document is " VERSION_STRING ".";
...
저는 이 부분의 코드가 글로벌 문자열이(추가 정보)을 만들에서 초기화를 시간이다.출력 위의 코드의 것->현재 버전 이 문서의 1U.그래서 내가 원하는 것은 제거하는"U".기회는 이 문제를 해결와 전처리기 기능이 있나요?(다음과 같 변환 부호 정의된 값을 서명을 정의 값...)?
해결책
지가 있다고 생각하지 않은 사전 프로세서 방법을 꺼내 U
서 VERSION
.그러나,당신은 그들을 결합 할 수 있습니다.I would suggest:
#define UNSIGNED_VERSION 1
#define VERSION UNSIGNED_VERSION ## U
#define _VALUE_TO_STRING(x) #x
#define VALUE_TO_STRING(var) _VALUE_TO_STRING(var)
#define VERSION_STRING VALUE_TO_STRING(UNSIGNED_VERSION)
char readMe[] = "The current version of this document is " VERSION_STRING ".";
제휴하지 않습니다 StackOverflow