我昨天发布了一个类似的问题,该网站建议发布一个具有更好解释的新问题。
有两个宏:
#define COMPANY L"Test Company"
#define PRODUCT COMPANY L" in Canada"
PRODUCT 的结果将是“Test Company in Canada”。
现在,我们有以下要求:
- 将 COMPANY 设为“动态”字符串,以调用函数返回公司名称,例如 . #define 公司 getCompanyName()
- 我们不允许更改其他代码以引用 COMPANY,例如 #define PRODUCT COMPANY L" in Canada",因为代码中有很多宏
更改的问题: 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;
}