Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在C++;,可以使用字符串文字作为宏名称吗?_C++_String_Token_C Preprocessor - Fatal编程技术网

C++ 在C++;,可以使用字符串文字作为宏名称吗?

C++ 在C++;,可以使用字符串文字作为宏名称吗?,c++,string,token,c-preprocessor,C++,String,Token,C Preprocessor,下面是我的场景:我有一组不想修改的源文件,但我想用其他值替换一些字符串文本。下面是一个例子: #define "oldString" "newString" 不,那是不可能的。如果您已经使用了宏来代替字符串,那么更改宏定义以使用不同的字符串就很简单了——迟做总比不做要好。不,\define允许您为标识符指定值。标识符不能包含引号字符。如果这样做有效,结果将与直接修改源代码得到的结果完全相同。将源代码置于版本控制中,以便跟踪所做的更改。或者编写一个脚本,在每次编译之前对源代码进行处理。由于您正在

下面是我的场景:我有一组不想修改的源文件,但我想用其他值替换一些字符串文本。下面是一个例子:

#define "oldString" "newString"

不,那是不可能的。如果您已经使用了宏来代替字符串,那么更改宏定义以使用不同的字符串就很简单了——迟做总比不做要好。不,
\define
允许您为标识符指定值。标识符不能包含引号字符。

如果这样做有效,结果将与直接修改源代码得到的结果完全相同。将源代码置于版本控制中,以便跟踪所做的更改。或者编写一个脚本,在每次编译之前对源代码进行处理。由于您正在编译源代码(而不是在调试时查看源代码以供参考),因此按照您描述的方式修改源代码应该不会有任何危险。很好,谢谢您的快速回复。在本例中,源文件是由另一家公司生成的,并且更改相当频繁,因此我希望将它们的文件放入(并快速进行区分以确保没有任何重要的更改)并包含此文件。我的备份计划是编写一个脚本来替换字符串,正如上面Rob K.所建议的那样。