类似的东西:(这是任务,如何做到这一点,而不是改变主要功能的主体)
我认为这太简单了...但是......我不知道怎么做......
#include <iostream>
#define "a" "b"
int main( int argc,char ** argv) {
std::cout << "a";
return 0;
}
//输出:b
怎么做?
答案 0 :(得分:8)
幸运的是,您无法重新定义字符串文字。当然,真正的问题是:为什么你想要这样做?
答案 1 :(得分:4)
宏名称必须是标识符,因此不能包含字符"
。
答案 2 :(得分:4)
Changing C++ output without changing the main() function
例如来自该主题:
#include <iostream>
#include <cstdio>
#include <sstream>
#define cout printf("a"); std::ostringstream os; os
int main()
{
std::cout << "b";
}
更简单的一个:
#include <iostream>
#define cout cout << "a"; return 0; std::cout
int main()
{
std::cout << "b";
}
答案 3 :(得分:2)
你做不到。预处理器不会“查看”字符串文字。
答案 4 :(得分:0)
可能你想这样做:
#include <iostream>
#define a "b"
int main( int argc,char ** argv) {
std::cout << a;
return 0;
}
输出:b
答案 5 :(得分:0)
#define
是一种糟糕的c++
风格。使用const
。
#include <iostream>
// const char * string_a = "a"; // Regular: Use const char *
const char * string_a = "b"; // Replacing: Instead of bad #define "a" "b"
int main( int argc,char ** argv) {
std::cout << string_a;
return 0;
}