gpt4 book ai didi

作为数据类型的 C 结构

转载 作者:太空狗 更新时间:2023-10-29 16:27:23 25 4
gpt4 key购买 nike

我希望能够做这样的事情:

typedef struct
{
char* c_str;

} string;

string s = "hello";

有没有可能以任何方式做到这一点?

我知道可以这样做:

typedef struct
{
char* c_str;

} string;

string s = { "hello" };

但我不喜欢大括号,因为它只有一个成员变量。

最佳答案

您可以使用 typedef 而不是 struct:

typedef char* string;
string s = "hello";

但是const string 会使指针 成为常量,而不是指向的数据。所以const string s等同于char* const s。一个解决方案可能是为 const 字符串定义一个附加类型:

typedef char* string;
typedef const char* const_string;

对于原始结构,也是如此。 (C++ 有同样的“问题”,这就是为什么它的容器类型中有 iteratorconst_iterator。)

指针类型的 typedef 的优点是您可以键入

string s1, s2, s3;

代替

char *s1, *s2, *s3;

关于作为数据类型的 C 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29867154/

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