gpt4 book ai didi

c++ - 同一个字符串的多个#define 是否使用同一个常量字符串?

转载 作者:搜寻专家 更新时间:2023-10-31 01:48:43 24 4
gpt4 key购买 nike

同一个字符串的多个#define是否使用同一个常量字符串?假设我在多个地方执行以下操作:

#define TEST @"test"

编译器足够聪明,知道它引用了数据部分中的同一个常量字符串,对吗?

最佳答案

确实,您的问题与#define 的作用没有太大关系,而是与编译器如何处理字符串文字有关。编译器将字符串对象插入到程序镜像中,该镜像是只读的,不实现保留计数。这是一种优化,因此不需要在运行时创建字符串。

通常编译器足够聪明,可以识别出你在使用相同的字符串字面量,并且会使用相同的常量字符串,但它不会在堆中。

同时检查这个问题:Authoritative description of ObjectiveC string literals?

关于c++ - 同一个字符串的多个#define 是否使用同一个常量字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17414063/

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