gpt4 book ai didi

macros - C 预处理器可以执行简单的字符串操作吗?

转载 作者:行者123 更新时间:2023-12-01 08:12:38 25 4
gpt4 key购买 nike

这是C宏怪问题。

是否可以编写一个宏,以字符串常量 X ("...") 作为参数并计算相同长度的字符串 Y,使得 Y 的每个字符都是 X 对应字符的 [constant] 算术表达式。

这是不可能的,对吧?

最佳答案

不,C 预处理器将字符串文字视为单个标记,因此它无法执行任何此类操作。

您所要求的应该在实际的 C 代码中完成。如果您担心运行时性能并希望在编译时委派这个固定任务,现代优化编译器应该可以成功处理这样的代码——它们可以展开任何循环并预先计算任何固定表达式,同时考虑代码大小和 CPU 缓存使用将模式考虑在内,而预处理器对此一无所知。

另一方面,您可能希望您的代码包含这样一个修改过的字符串文字,但不想要或不需要原始的 - 例如你想要你的程序将解码的模糊文本,你不想在你的可执行文件中有原始字符串。在这种情况下,您可以使用一些构建系统脚本来执行此操作,例如,使用另一个 C 程序生成修改后的字符串,并将它们定义为实际程序的 C 编译器命令行中的宏。

关于macros - C 预处理器可以执行简单的字符串操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com