C quote常量返回一个结构

C quote常量返回一个结构,c,C,我以前也问过类似的问题,但我想我还不够具体 在定义常量字符串时,我需要一种方法来返回自定义的struct,而不是char*,例如: typedef struct{ char *value; int length; } string; string *a; a = "abc" //Sets a->value to "abc" and length to 3 ("abc" return string instead of char*) 如果这是C++,可以使用运算符重载并定义A=函

我以前也问过类似的问题,但我想我还不够具体

在定义常量字符串时,我需要一种方法来返回自定义的
struct
,而不是char*,例如:

typedef struct{
  char *value;
  int length;
} string;

string *a;
a = "abc" //Sets a->value to "abc" and length to 3 ("abc" return string instead of char*)

如果这是C++,可以使用运算符重载并定义A=函数,但这是C,所以没有操作符重载。但是,你可以通过写一个“相等”(或“SET()”函数来完成这个操作。

< P>如果这是C++,你可以使用运算符重载并定义A=函数,但是这是C,所以没有操作符重载。但是,您可以通过编写“equals()”或“set()”函数来解决此问题。

我发现您可以创建一个与char相等的类型,如下所示:

typedef char string;

string *a = "abc"; 
//Doesn't address length but just have a separate function:
int get_len ( string *in ){
  return strlen(in);
}

中获取此信息,我发现您可以创建一个与char相同的类型,如下所示:

typedef char string;

string *a = "abc"; 
//Doesn't address length but just have a separate function:
int get_len ( string *in ){
  return strlen(in);
}

这是从

获得的,如果您只是希望对其进行默认初始化,则可以更改其分配方式:

string a = {"abc", 4};
下面是一个活生生的例子:


如果需要在字符串取消公差后更改字符串,则需要编写某种形式的
set
函数

如果您只是希望对其进行默认初始化,则可以更改其分配方式:

string a = {"abc", 4};
下面是一个活生生的例子:


如果需要在字符串取消公差后更改字符串,则需要编写某种形式的
set
函数

使用引号。真的吗?如果你告诉我们原因,我们可能会找到更好的解决方案。如果您正在编写自己的改进的字符串库,请考虑使用许多现有的字符串库。例如,gtk源代码中的gchar运行良好,感谢使用引号
。真的吗?如果您告诉我们原因,我们可能会找到更好的解决方案。如果您正在编写自己的改进的字符串库,请考虑使用许多现有的字符串库。例如,GTK源代码的GCHAR工作得很好,谢谢,我开始作为C++程序员,所以我似乎忘记了C缺少许多来自C++ THX的特性,我开始作为C++程序员,所以我似乎忘记了C缺少许多来自C++的特性。