`
buliedian
  • 浏览: 1238115 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

C语言中参数传递优化

阅读更多

我以前看了某位大大的分析,多参数函数调用会比单一参数更加花费CPU时间,因此使用结构体封装参数。但是通过分析得到了自己的见解,关于这点是不能一概而论的。仔细查看Win32 API你就会发现,只是拥有众多参数的时候才会使用结构体封装,参数少的时候,不进行封装的,因为你给结构体中的元素赋值也需要花费CPU时间,这些是等价的,而且还带来了调用函数的不方便。

我举例说明:

void add1(int a, int b);

typedef struct tag_add_param

{

int a;

int b;
}add_param;

void add2(add_param *param);

add1 要比 add2好,调用方便,代价花费差不多。

原因:

add1(1, 2);

add_param param;

param.a = 1;

param.b = 2;

add2(&param);

add1的参数很多的情况下,那么add2就要好点了。

原因:

每个参数传递都会增加push语句,那么会花费一些CPU时间的。

分享到:
评论

相关推荐

    对C语言函数参数传递的探讨——以交换问题为例.pdf

    C语言的函数参数传递是程序设计中的一个重要概念,它直接关系到程序中数据的流动和处理方式。在C语言中,函数调用时的参数传递方式主要分为两种:值传递(Call by Value)和地址传递(Call by Address),也称作传值...

    C语言函数调用与参数传递剖析.pdf

    函数调用与参数传递是C语言编程中的核心概念之一,理解它们的工作原理对于掌握C语言至关重要。函数调用是指主调函数调用被调函数的过程,通过这种方式,程序可以按模块化进行设计和组织。参数传递是函数调用过程中不...

    C语言常规优化策略 参数传递、宏定义、全局变量与汇.doc

    C语言常规优化策略 参数传递、宏定义、全局变量与汇

    C语言中 值传递和指针传递实例详解

    值传递是C语言中最常见的参数传递方式。当一个变量作为函数参数时,它的值会被复制到函数内部的一个临时存储空间中。这意味着在函数内部对参数的任何修改都不会影响到函数外部的原始变量。下面的示例展示了值传递的...

    ARM汇编和C语言的优化[参照].pdf

    在嵌入式开发中,尤其是针对ARM架构的设备,优化C语言代码至关重要,因为这直接影响到程序的运行效率和资源占用。以下是一些基于ARM汇编和C语言的优化策略: 1. **C数据类型的选择**: - `char`在ARM C编译器中...

    c语言教案 c语言课件 C语言

    5. **第07章 函数.ppt**:函数是C语言中模块化编程的关键,讲解了函数的定义、调用、参数传递以及递归函数的概念。 6. **第08章 预处理.ppt**:预处理器在编译过程中的作用,包括宏定义、条件编译等,这些都是C语言...

    嵌入式C语言系统开发代码优化研究.pdf

    1. 变量使用优化:全局变量在某些情况下可以提高性能,因为它避免了函数调用时的参数传递和栈操作。然而,全局变量可能导致数据布局的变化,并需要谨慎管理存储器分配。建议将相同类型的变量组合在一起定义,使用...

    C语言中的类型修饰符

    2. **用于函数参数**:通过在函数参数前加上`const`关键字,可以指定该函数不会修改传递进来的参数所指向的数据。例如: ```c void memcpy(void *dest, const void *src, size_t n); ``` 这里`const void *src`...

    C语言程序优化.pdf

    在使用函数时,应该注意参数的传递方式和返回值类型。 最后,文档中包含了一些示例代码片段,例如初始化函数和延时函数。在嵌入式编程中,初始化函数通常用于设置微控制器的初始状态,而延时函数则常用于控制执行...

    嵌入式C语言程序设计中的代码优化.pdf

    由于宏展开只是简单的文本替换,因此在使用宏时需要特别注意宏定义的形式和参数传递,避免由于操作符优先级引起的意外结果。使用宏时应该尽量使用括号保护参数,以确保宏的正确展开。另外,由于宏的展开可能会导致多...

    C语言函数参数的传递详解.rar-综合文档

    在C语言中,函数是程序的基本模块,...了解这些概念后,程序员可以根据需求选择合适的参数传递方式,优化代码性能,同时避免不必要的错误。在实际编程中,合理运用各种参数传递方式,能够提升代码的灵活性和可读性。

    C语言函数大全 函数例题

    总结来说,“C语言函数大全”这个资源应该涵盖了函数的各个方面,包括但不限于函数的定义、参数传递、返回值、函数指针、递归、函数优化等。通过对这些例题的学习和实践,学习者能更深入地理解C语言函数的使用,并...

    飞思卡尔单片机高效C语言编程(中文)

    8. 参数传递:在C语言中,函数可以通过参数来接收输入值。本教程将介绍如何在飞思卡尔单片机中实现和使用参数传递。 9. 优化:在编程中,优化是一个重要的环节,它可以帮助我们提高程序的性能。本教程将介绍如何在...

    c语言和汇编混用

    无参数传递的函数调用通常涉及到C语言和汇编语言之间的互调。以下是一个具体的示例: - **C文件 (example.c)**: - 使用`extern`关键字声明一个外部函数 `delay100()`,并在 `main()` 函数中调用它。 ```c extern...

    C语言代码优化教程翻译

    该教程详细介绍了C语言中的代码优化技巧,包括但不限于循环展开、变量处理、函数调用等关键点。通过这些技术的应用,可以显著提升程序的执行效率。 #### 二、代码优化的基本原则与技巧 ##### 2.1 使用条件语句替代`...

    C语言编程精粹.pdf

    此外,书中可能会详细阐述函数的使用,包括参数传递、递归和局部变量管理。函数是C语言中的模块化手段,理解其工作原理对于编写可读性强、可维护性好的代码至关重要。 还有,书中的编译器优化部分可能教导读者如何...

    专升本C语言部分资料

    同时,了解函数指针,它能作为参数传递,或者用于回调函数,这在高级C编程中非常常见。 文件操作也是C语言的重要一环。学习如何打开、读取、写入和关闭文件,以及如何处理文件指针,是解决实际问题的必备技能。此外...

    CCS 中C语言程序调用线性汇编

    通过上述分析,我们可以看出线性汇编在DSP优化中扮演着重要的角色。它不仅简化了传统汇编语言的编写难度,还能够在一定程度上提高程序的执行效率。对于从事DSP开发的工程师来说,掌握线性汇编的使用方法是非常有价值...

    c语言c语言c语言c语言c语言.zip

    函数可以有参数和返回值,这样就能传递数据和结果。在日常练习中,编写和调用函数是提升编程技能的关键。 C语言还包括预处理器指令,如#include用于引入头文件,宏定义(#define)用于创建常量和简单的代码替换。...

Global site tag (gtag.js) - Google Analytics