C语言 内联函数 + 递归函数

函数分类

内联函数

1)内联函数在编译时将函数的代码直接插入到调用它的地方,而不是通过函数调用的方式执行,从而减少了函数调用的开销,提高了代码的执行速度
2)使用 inline 关键字来声明
3)将函数声明为内联函数只是给编译器一个建议,告诉它将函数的代码插入到调用的地方。编译器可以选择忽略内联函数的建议,继续将函数编译为常规函数。

内联函数的使用规则和特点:

递归函数

递归函数是一种函数调用自身 的技术。递归函数可以用于解决需要重复执行相同操作的问题。

递归函数包括两部分:基本情况和递归调用:
计算阶乘
c 复制代码
//递归计算阶乘
unsigned int factorial(unsigned int n) 
{
    if (n == 0 || n == 1) 
    {
        return 1;
    } 
    else 
    {
        return n * factorial(n - 1);
    }
}
c 复制代码
//循环计算阶乘
unsigned int factorial(unsigned int n) 
{
    unsigned int result = 1;
    for (unsigned int i = 1; i <= n; ++i) 
    {
        result *= i;
    }
    return result;
}
斐波那契数列
c 复制代码
//递归方法
int fibonacci(int n) 
{
    if (n <= 1)
    {
        return n;
    }
    return fibonacci(n-1) + fibonacci(n-2);
}
c 复制代码
//迭代方法
int fibonacci(int n) 
{
    if (n == 0)
    {
        return 0;
    }

    int prev = 0;
    int curr = 1;
    for (int i = 2; i <= n; i++) 
    {
        int next = prev + curr;
        prev = curr;
        curr = next;
    }
    return curr;
}

避免头文件重复包含

使用文件保护宏
c 复制代码
#ifndef HEADER_FILE_NAME_H
#define HEADER_FILE_NAME_H

// 头文件的内容

#endif // HEADER_FILE_NAME_H
使用 #pragma once
c 复制代码
#pragma once

// 头文件内容

虽然 #pragma once 在大多数情况下提供了简洁的头文件包含机制,而且几乎所有主流的编译器都支持它,但它不是C或C++的标准预处理指令 。因此,如果您希望代码更具可移植性,可以继续使用传统的头文件保护宏。

详细教程可转

爱编程的大丙

相关推荐
施棠海28 分钟前
监听与回调的三个demo
java·开发语言
時肆48529 分钟前
C语言造轮子大赛:从零构建核心组件
c语言·开发语言
赴前尘1 小时前
golang 查看指定版本库所依赖库的版本
开发语言·后端·golang
de之梦-御风1 小时前
【C#.Net】C#开发的未来前景
开发语言·c#·.net
知乎的哥廷根数学学派2 小时前
基于数据驱动的自适应正交小波基优化算法(Python)
开发语言·网络·人工智能·pytorch·python·深度学习·算法
de之梦-御风2 小时前
【C#.Net】C#在工业领域的具体应用场景
开发语言·c#·.net
sunfove2 小时前
将 Python 仿真工具部署并嵌入个人博客
开发语言·数据库·python
Learner2 小时前
Python类
开发语言·python
xingzhemengyou12 小时前
C语言 查找一个字符在字符串中第i次出现的位置
c语言·算法
X1A0RAN3 小时前
python 借助 paramiko 库执行 SSH命令报错:input is not a terminal 解决方式
开发语言·python·ssh