C语言中,为何通过指针传递结构体比直接传递结构体变量更高效?其深层机制究竟何在?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2047个文字,预计阅读时间需要9分钟。
目录+前言+递归结构体变量+递归结构体指针+总结+前言+先声明观点:当少量结构体成员时,递归结构体指针和结构体变量的差距不大;当大量结构体成员时,随着成员数量的增加,差距越来越大。
目录
- 前言
- 传递结构体变量
- 传递结构体指针
- 总结
前言
先声明下观点:当有少量结构体成员时,传递结构体指针和结构体变量的差距不大;当有大量结构体成员时,随着成员越来越多,传递指针的效率也越来越高,与传递变量的差距也越来越大。
传递结构体变量
直接看代码:
测试程序demo01.cpp,如下:
#include <stdio.h> #include <Windows.h> struct st_info // 定义结构体 { int x; int y; int m; int n; }; int retAddst(st_info stinfo) // 函数返回结构体变量成员相加的值 { return stinfo.x+stinfo.y+stinfo.m+stinfo.n; } int main() { st_info stinfo = {1,2,3,4}; // 定义变量准备传参。
本文共计2047个文字,预计阅读时间需要9分钟。
目录+前言+递归结构体变量+递归结构体指针+总结+前言+先声明观点:当少量结构体成员时,递归结构体指针和结构体变量的差距不大;当大量结构体成员时,随着成员数量的增加,差距越来越大。
目录
- 前言
- 传递结构体变量
- 传递结构体指针
- 总结
前言
先声明下观点:当有少量结构体成员时,传递结构体指针和结构体变量的差距不大;当有大量结构体成员时,随着成员越来越多,传递指针的效率也越来越高,与传递变量的差距也越来越大。
传递结构体变量
直接看代码:
测试程序demo01.cpp,如下:
#include <stdio.h> #include <Windows.h> struct st_info // 定义结构体 { int x; int y; int m; int n; }; int retAddst(st_info stinfo) // 函数返回结构体变量成员相加的值 { return stinfo.x+stinfo.y+stinfo.m+stinfo.n; } int main() { st_info stinfo = {1,2,3,4}; // 定义变量准备传参。

