在C或C++编程中,结构体嵌套是指一个结构体内部包含了另一个结构体的实例作为其成员。
// 结构体嵌套.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
#define _CRT_SECURE_NO_WARNINGS#include <iostream>// 定义一个地址结构体 typedef struct {char street[50];char city[50];char state[50];int zip_code;} Address;// 定义一个学生结构体,它包含一个地址结构体的实例 typedef struct {char name[50];int age;Address address; // 嵌套的地址结构体 } Student;int main() {// 创建一个学生实例 Student student1;// 设置学生的信息 strcpy(student1.name, "John Doe");student1.age = 20;// 设置学生的地址信息 strcpy(student1.address.street, "123 Main St");strcpy(student1.address.city, "Springfield");strcpy(student1.address.state, "IL");student1.address.zip_code = 12345;// 输出学生的信息 printf("Name: %s\n", student1.name);printf("Age: %d\n", student1.age);printf("Address:\n");printf(" Street: %s\n", student1.address.street);printf(" City: %s\n", student1.address.city);printf(" State: %s\n", student1.address.state);printf(" Zip Code: %d\n", student1.address.zip_code);return 0;std::cout << "Hello World!\n";}// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
运行:
---------------------------------------在STM32程序(keil)中应用解析:
结构体:
带嵌套的结构体:
嵌套结构体新类型的使用:
(串口初始化实际使用: usart_init(9600); /* 串口初始化为波特率 */)