私は昨日同様の質問を投稿しましたが、サイトはより良い説明で新しい質問を投稿することを提案しました.
次の 2 つのマクロがあります。
#define COMPANY L"Test Company"
#define PRODUCT COMPANY L" in Canada"
PRODUCT の結果は「Test Company in Canada」になります。
現在、次の要件があります。
- COMPANY を「動的な」文字列にして、関数を呼び出して会社名を返します。#define COMPANY getCompanyName()
- #define PRODUCT COMPANY L" in Canada" など、他のコードを COMPANY を参照するように変更することは許可されていません。これは、コードに非常に多くのマクロが含まれているためです。
変更に関する問題: PRODUCT の結果は "Test Company" になり、" in Canada" の部分が文字どおり失われます。
コードは次のとおりです。
#include <stdio.h>
#include <tchar.h>
const wchar_t* getCompanyName() { return L"Test Company";};
#define COMPANY getCompanyName();
#define PRODUCT COMPANY L" in Canada"
int _tmain(int argc, _TCHAR* argv[])
{
const wchar_t * company = COMPANY; // get Test Company
const wchar_t * product = PRODUCT; // get Test Company in Canada
wprintf(company);
wprintf(product);
return 0;
}