문제

#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".기회는 이 문제를 해결와 전처리기 기능이 있나요?(다음과 같 변환 부호 정의된 값을 서명을 정의 값...)?

도움이 되었습니까?

해결책

지가 있다고 생각하지 않은 사전 프로세서 방법을 꺼내 UVERSION.그러나,당신은 그들을 결합 할 수 있습니다.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 ".";
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top