嵌入式学习day10

本文详细阐述了C/C++中的函数定义、参数传递、内存区域(栈、堆、字符串常量区、全局区、代码区)以及函数的嵌套调用特别是递归的概念,包括递推关系和结束条件的编写方法。
摘要由CSDN通过智能技术生成

八.函数

函数 --- 实现某一个功能的 


函数的定义: //实现函数 

类型标识符 函数名(形式参数)
{
    声明部分
    语句部分
}

(1).类型标识符 (返回值的类型标识符)
(2).函数名   --- 一般和函数功能对应 
(3).形式参数 --- 函数接收数据的入口 
      形参 --不是一定要有 
          看函数功能的需要 
          形参没有,一般写成 void 

     形参:(本质是变量)
     与实参
     a.个数相同
     b.类型匹配 
     c.与实参匹配顺序 //从右向左 在ubunt18.04平台上顺序是从右向左 


(4).函数体   --- 完成函数具体功能的代码 
(5).返回值   返回值如果没有,返回值类型 一般写成void 
        返回的结果的类型 与 定义返回值类型 不一致 ,以定义的返回值类型为准 
        返回值的类型如果不写,默认为int

函数定义的位置:
1.main函数之前
2.main函数之后
  函数的声明 
  函数头 + 分号 

  函数声明可以放的位置,
  使用之前   
 

函数调用的形式:
add(a,b); // 函数调用语句 

int ret;

ret = add(a,b); //函数调用在表达式中 

ret = add(a,b) + 3; //表达式的一部分

//函数调用作为某个函数的实际参数    
printf("sum = %d\n",add(a,b));    
 

返回值的类型标识符 函数名(形式参数) //函数头 --规定了一下函数的形式   
{
    函数体    //--实现函数具体功能代码 
    
    返回结果 //return 返回结果 
}

strcpy(s1,s2); //实际参数 
    

//功能:
  求和 

准备数据:
  准备两个数据 --- 形式参数要能接收两个数据 ---本身其实就是变量

  处理数据:
  a+b

  返回结果:
  return 

  
函数名:
  add
  
形式参数:
  int a,b; //形参不能这样写 
  
  数据类型 形参变量名1,数据类型 形参变量名2,...
  
  int a,int b
函数功能:

  a+b
结果:
  return 结果;
  

函数调用:
语法:
  函数名(实际参数);

栈:

     特点:先进后出(FILO)//First In Last out

     Linux系统上,默认情况下8M,大小可以调整

    主要:局部变量 

               自动申请  自动释放

               int a;

堆:

    特点:大; 手动申请 手动释放

字符串常量区:

    char s[10] = “hello”

全局区(静态区)

    全局变量(静态变量)

代码区

程序 = 代码 + 数据

内存的5个区

函数的嵌套调用:

特殊的嵌套调用:---递归(自己调用自己)

递归 --就是循环

直接递归

间接递归

while(1)//死循环

{}
  

递归:

1.//sum()
递归来实现: //倒着来 

 2.算法 


写出代码:
1.递推关系 //重复的 
 第n项 与 第n-1项之间的关系 
2.结束条件 


 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值