嵌入式学习——C语言函数(一)

目录

一、函数的概述

        1、定义:

        2、优点:

        3、重点:

二、函数的分类

        1、从函数实现的角度:

        2、从函数形式的角度:

        3、函数:

三、函数的定义

        1、语法格式:

        2、形参和实参

        3、函数的返回值

        4、函数返回值的类型

四、函数的调用

                1)函数语句:

                2)函数表达式语句:

                3)做函数的参数:    

一、函数的概述

        1、定义:

                函数就是用来完成一定功能的一段程序模块。

        2、优点:

                1)减少重复性代码。

                2)可以通过函数让别人调用。

                3)实现结构化(模块化)的程序设计思想。

        3、重点:

                函数是C语言的基本组成单位,程序由一个或多个函数组成,但是有且仅有一个主函数(main()函数)

二、函数的分类

        1、从函数实现的角度:

                1)标准库函数:C语言标准库实现并使用。       例:printf() scanf() strcpy()...

                2)用户自定义函数:用户自己编写代码实现。

        2、从函数形式的角度:

                1)有参函数:函数有参数,在调用函数的时候,要传递参数   例:sleep(1);

                2)无参函数:函数没有参数    例:getchar();

        3、函数:

                1)主调函数

                2)被调函数

三、函数的定义

        1、语法格式:

                类型标识符  函数名(参数表 )

                 {      

                        函数体语句

                }

int sum(int a,int b)
{
    return a>b?a:b;
    //比较a和b的大小,并返回大的那个值
}

        说明:

                1)返回类型:函数的返回值类型

                2)函数名:遵循标识符规则

                3)形参列表:用于接受主调函数传递数据,如果有多个形参需要用逗号隔开,并且每一个形参需要说明具体的类型。

        2、形参和实参

                1)形参:也称为形式参数,函数定义的时候指定的参数,用来接收数据的。在函数定义时,系统不会为形参分配内存空间,只有当函数调用时,才会分配空间,用来存放实参传递过来的数据,当函数调用结束后,系统会自动回收为形参分配的内存空间。

                2)实参:也称为实际参数,也就是函数在调用时括号里面的东西。

                3)说明:实参和形参必须类型相同。若不同时,按赋值规定自动进行类型转换。

                                实参可以是常量、变量、表达式,只要有确定的值。

                                在C语言中,实参向形参的数据传递是“值传递”,是单向传递,即只由实参传给形参,而不能由形参传回来给实参。在内存中,实参、形参占不同的存储单元,因此形参值的改变不会影响实参值。

        3、函数的返回值

                1)被调函数返回数据给主调函数的结果,就叫返回值(通过函数中的return语句获得的)。

                2)返回值类型一般情况下需要和return语句返回的类型保持一致,如果不一样以定义函数时指定的返回值类型保持一致。

                3)一个函数中可以有多个return语句,但任一时刻只有一个return语句被执行。

                4)return后面的值可是常量、变量或表达式,且圆括号可有可无,返回的是其值。

                例:           

int max(int x,int y)
{  
    return (x>y ? x:y);  
}

        4、函数返回值的类型

                1)若需要返回值,定义函数时一定要说明函数的类型。

                2)凡不加类型说明符的函数,C语言按int型对待。        

                3)定义函数时指定的函数类型一般应和return语句中的表达式类型相同。若函数值的类型和 return语句中表达式的值不一致时,以函数类型为准。对数值型数据可以自动进行类型换(隐式转换)。         

                4)对于不要求返回值的函数,应用“void”定义为无类型(空类       型),以保证函数不返回任何值,而不论是否有return

四、函数的调用

                1)函数语句:

                        把函数调用作为一个语句。

                        函数名(实际参数);
                        变量=函数名(实际参数);

                2)函数表达式语句:

                        函数调用出现在一个表达式中,称为函数表达式。此时要求函数返回一个确定的值,已参加表达式的运算。

        例如:

                        sum(5)+6;

                        3+area(1,2);

                3)做函数的参数:    

                        函数调用作为一个函数的实参    例: printf(“%d”,max(a,b));  

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sscanf函数是C语言中一个非常常用的函数,它可以将一个字符串按照指定的格转换成相应的数据类型。在嵌入开发中,sscanf函数也是非常常见的,因为很多时候需要从串口或者其他外部设备中读取数据,并将其转换成相应的数据类型进行处理。下面是一些sscanf函数的使用技巧: 1. 使用sscanf函数时一定要注意格字符串的正确性。格字符串中的占位符必须与待转换的数据类型相对应,否则会发生未知错误。 2. 如果待转换的字符串中包含多个数据,可以使用多个占位符进行转换。例如,如果待转换的字符串为"1,2,3",可以使用" %d,%d,%d"的格字符串进行转换。 3. 可以使用sscanf函数的返回值来判断转换是否成功。如果返回值等于待转换字符串的长度,则说明转换成功,否则转换失败。 4. 如果待转换的字符串中包含浮点数,可以使用"%f"或者"%lf"的格字符串进行转换。 5. 如果待转换的字符串中包含十六进制数,可以使用"%x"的格字符串进行转换。 6. 如果待转换的字符串中包含字符或字符串,可以使用"%c"或者"%s"的格字符串进行转换。 7. 如果待转换的字符串中包含指针类型的数据,可以使用"%p"的格字符串进行转换。 总之,在使用sscanf函数时一定要注意格字符串的正确性,否则很容易出现转换错误的情况。同时,还应该注意sscanf函数返回值的判断,以确保转换的正确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值