代码语言:javascript 复制 // main.c #include "student.h" int main() { Student s; setStudent(&s, 1, "Alice"); printStudent(&s); return 0; } 解析与注释 隐藏实现细节:头文件仅暴露函数接口,结构体的定义隐藏在源文件中。 封装性更强:其他模块无法直接访问结构体成员,降低耦合性。 适用于模块化...
}s1,s2;// 定义的同时马上声明,一次性intmain(){ s1={"www",1,'m',100.0}; s2={"ccc",2,'f',99.4};return0; } 方式3 typedefstruct{charconst*name;intnum;charsex;floatscore; } STU;// 给结构体起别名intmain(){ STU s1={"www",1,'m',100.0};return0; }...
用字符数组表示 unsigned int year;//入学年份,用无符号整数表示 unsigned int years;//学制,用无符号整数表示 }; int main(void) { /** *在main函数中声明结构体变量 *结构体变量名叫info *struct关键字不能丢 */ struct Info info; ... }
解析与注释 放在头文件:多个源文件都可以共享此结构体定义。 头文件保护:使用#ifndef和#define防止重复包含。 数据结构简单:定义直接暴露成员,对模块耦合度要求不高。 2.2 隐藏实现细节的结构体 如果结构体只用于某个模块,或者需要隐藏其具体实现细节,可以在头文件中声明,在源文件中定义。 示例代码 // student.h ...
**1.1 定义 vs 声明** **1.2 放置位置的基本规则** **2. 不同场景下的放置策略** **2.1 简单结构体的定义** 示例代码 **解析与注释** **2.2 隐藏实现细节的结构体** 示例代码 **解析与注释** **2.3 复杂结构体的处理** 示例代码 **解析与注释** ...