复习结构体的创建,重定义,打印,以及对函数压栈的理解
  sLjOnCldvVSM 2023年11月12日 33 0

复习结构体的创建,重定义,打印,以及对函数压栈的理解_#include

函数在操作,在栈上进行,形参的拷贝和函数的运行,基本上都在栈上完成,所以结构体的传参,对栈区的资源消耗较大。而传地址的操作则会节省栈区资源,不需要形参的拷贝过程,而是直接寻址。

#define _CRT_SECURE_NO_WARNINGS 1
#include "stdio.h"
struct T
{
	char t;
	char s;
};
typedef struct Stu
{
	char name[20];
	int age;
	char sex[5];
	char tele[12];
	struct T u;
}Stu;

void Print1(Stu tmp)
{
	printf("name: %s\n",tmp.name);
	printf("age: %d\n", tmp.age);
	printf("sex: %s\n", tmp.sex);
	printf("tele: %s\n", tmp.tele);
	printf("t: %c\n", tmp.u.t);
	printf("s: %c\n", tmp.u.s);
}

void Print2(Stu* ps)//此种方法打印更好,减少了数据压栈
{
	printf("name: %s\n", ps->name);
	printf("age: %d\n", ps->age);
	printf("sex: %s\n", ps->sex);
	printf("tele: %s\n", ps->tele);
	printf("t: %c\n", ps->u.t);
	printf("s: %c\n", ps->u.s);
}

int main()
{
	struct T u = { 'w','e'};
	Stu s1 = { "张三", 12, "男", "12583581451",{'w','e'}};
	Print1(s1);
	Print2(&s1);
	return 0;
}






//int main()
//{
//	char t = { 'w' };
//	printf("%c\n", t);
//	return 0;
//}
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  QtpjMRSUUfXb   2023年12月08日   48   0   0 引脚#include看门狗
  tprTMCWDkFAR   2023年12月07日   30   0   0 头文件#include初始化
  QtpjMRSUUfXb   2023年12月06日   55   0   0 卷积#includeCUDA
  UYSNSBVoGd8R   2023年12月08日   22   0   0 引脚#include#define
sLjOnCldvVSM