将每个成员初始化为空的C字符串
指令要求我声明一个类型为将每个成员初始化为空的C字符串,c,string,struct,initialization,C,String,Struct,Initialization,指令要求我声明一个类型为Name的变量,用于存储联系人的全名,但如何将每个成员初始化为空的C字符串 键入Name头文件: struct Name { char firstName[31]; char middleInitial[7]; char lastName[36]; }; 我的尝试:struct Name myname={{0} 我做得对吗?struct Name myname={{0}已关闭 警告:“结构名称”[-Wmissing字段初始值设定项]的字段“mid
Name
的变量,用于存储联系人的全名,但如何将每个成员初始化为空的C字符串
键入Name
头文件:
struct Name {
char firstName[31];
char middleInitial[7];
char lastName[36];
};
我的尝试:struct Name myname={{0}代码>
我做得对吗?struct Name myname={{0}代码>已关闭
警告:“结构名称”[-Wmissing字段初始值设定项]的字段“middleInitial”缺少初始值设定项
{0}
就足够了
备选方案如下所列。这取决于你想要表达的程度
struct Name {
char firstName[31];
char middleInitial[7];
char lastName[36];
};
// struct Name myname = { {0}};
struct Name myname1 = {0};
struct Name myname2 = { {0}, {0}, {0}};
struct Name myname3 = { "", "", "" };
struct Name myname4 = { .firstName = "", . middleInitial = "", .lastName = "" };
struct Name myname5 = { .firstName = "" };
struct Name myname6 = { { [0] = 0 }, "", {0}};
// many others
在C语言中,要么初始化所有对象,要么不初始化任何对象,不进行部分初始化
当初始化未完成时,其余部分将填充一些东西,通常是零位。适合另一个问题的细节
注意:如果struct Name myname
位于全局空间或static
中,它将接收默认的“零”初始化,即使没有显式的初始值设定项
struct Name myname;
int main() {
printf("<%s>\n", myname.firstName); // prints "<>\n"
}
struct Name myname;
int main(){
printf(“\n”,myname.firstName);//打印“\n”
}
struct Name myname={0};就够了。