을 연결하여 나는 리팩토링 싶다. 이상적으로 나는 const primitive 타입으로 이것을 할 수 있어야한다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 답변의 형태로 의견을 컴파일초기화 CONST 숯불 *이 다른 문자 *
1
A
답변
3
:
매크로를 사용합니다.
#define QUICK "quick " char const* arr = "The " QUICK "brown";
std:string
을 사용하십시오.std::string quick = "quick "; std::string arr = std::string("The ") + quick + "brown";
근무 코드 :
#include <iostream>
#include <string>
#define QUICK "quick "
void test1()
{
char const* arr = "The " QUICK "brown";
std::cout << arr << std::endl;
}
void test2()
{
std::string quick = "quick ";
std::string arr = std::string("The ") + quick + "brown";
std::cout << arr << std::endl;
}
int main()
{
test1();
test2();
}
출력 :
The quick brown
The quick brown
+0
나는이 대답을 수락하고있다. 문자열을 사용하고 다른 함수 안에 숨길 것이라고 생각합니다. 나는 aggregator보다는 공헌 한 모두를 upvote 할 수 있으면 좋겠지 만, 어이! 그것이 삶의 방식입니다. – user3757652
+0
내가하고 싶은 일을 할 수 없다는 것을 확인해 주셔서 감사합니다. 그것은 매우 도움이되었습니다. – user3757652
는 드물게 경우가 너무 없지만, 전 처리기 매크로가 더 적절한 것 같다. – WhozCraig
하위 문자열을 다시 사용할 수 없습니다. 각 리터럴 문자열은 메모리에서 연속적이어야합니다. 메모리 사용을 최적화하려면 코드로 (즉, 런타임 중에) 수행해야합니다. –
또는 std :: string을 사용하여 연결하십시오. 그게 당신에게 영향을 미치는지 모르겠습니다. –