首页 > 其他分享 >重头开始嵌入式第九天(函数)

重头开始嵌入式第九天(函数)

时间:2024-08-01 18:24:37浏览次数:15  
标签:第九天 函数 int 代码 嵌入式 重头 参数 返回值 声明

今天继续学习字符串

viod bzero(void *s, size_t n)

功能:将s开始的n个字节,清除为0

二维字符数组:

一维字符串的数组

接下来进入今天的正题,函数。

函数
 

在 C 语言中,函数是一段用于完成特定任务的独立代码块。下面我们来详细地阐述其特点和基本要素:

 

函数声明:

函数声明明确了函数的返回值类型、函数名以及参数的类型和数量。例如,“int add(int a, int b);” 这一声明表明函数名为“add”,返回值是整数类型,它接受两个整型参数“a”和“b”。函数声明通常放在程序的开头部分,或者在使用该函数之前,以便编译器提前了解函数的基本信息,进行类型检查和语法分析。

 

函数定义:

函数定义不仅包含函数声明中的信息,还包含了实现函数功能的具体代码,即函数体。以“int add(int a, int b) { return a + b; }”为例,这里详细描述了函数如何根据传入的两个整型参数进行相加操作,并通过“return”语句将结果返回。函数体中的代码按照特定的逻辑顺序执行,以实现预定的功能。

 

返回值:

返回值是函数执行结束后返回给调用者的结果。返回值的类型在函数声明中指定,并且在函数定义中通过“return”语句返回相应类型的值。需要注意的是,返回值的类型必须严格与声明中的类型一致。如果声明的返回值类型为整型,就不能返回一个浮点数。

 

参数:

参数在函数中起着传递数据的重要作用。形式参数,也就是在函数声明和定义中书写的参数,它们只是占位符,用于接收调用函数时传递的实际参数的值。实际参数则是在调用函数时传递给函数的具体数据。参数可以有多种类型,如整型、浮点型、字符型、指针类型等。

 

调用函数:

通过函数名和实际参数来执行函数。当调用函数时,程序会跳转到函数定义的部分执行函数体中的代码。在执行完毕后,将返回值返回给调用点,或者根据函数的性质执行相应的操作,比如输出结果、修改全局变量等。

 

函数的主要作用:

 

代码模块化:

将复杂的大型任务分解为多个较小的、逻辑独立的功能模块,每个模块由一个函数来实现。这样可以使代码结构更加清晰,易于理解和管理。比如一个大型的项目可以分为数据输入、数据处理、结果输出等多个模块,每个模块由相应的函数来完成。

 

减少代码冗余:

对于经常使用的相同功能,只需编写一次函数,然后在需要的地方进行调用。这避免了重复编写相同的代码段,减少了代码量,提高了开发效率,也降低了出错的可能性。例如,如果需要多次计算两个数的和,只需编写一个求和函数,每次调用即可,而无需每次都重复编写求和的代码。

 

提高程序结构清晰度:

函数将相关的操作和逻辑封装在一起,使得程序的整体逻辑结构更加清晰明了。通过函数名可以直观地了解函数的功能,方便开发者理解和调试程序。不同的函数负责不同的任务,它们之间的关系和调用顺序构成了整个程序的运行流程,使程序更易于维护和扩展。

 

标签:第九天,函数,int,代码,嵌入式,重头,参数,返回值,声明
From: https://blog.csdn.net/qq_64792908/article/details/140842856

相关文章

  • 嵌入式文件系统介绍合集:FAT32、exFAT、ext3、ext4、jffs2、yaffs2、ubifs、squashf
    liwen012024.07.21前言在嵌入式Linux系统中常用的文件系统有:FAT32、exFAT、ext3、ext4、jffs2、yaffs2、ubifs、squashfs。不管是在文件系统类型选型还是嵌入式应用软件面试中,关于文件系统的问题都会经常被提起。就目前而言,并没有哪款文件系统可以适用于所有应用场景,它们各......
  • py4cytoscape中基于身份的边缘加权Spring嵌入式布局
    我正在尝试使用Cytoscape自动创建网络。具体来说,我想使用基于py4cytoscape的边缘加权Spring嵌入式布局。虽然可以在Cytoscape中手动使用此布局(布局>边缘加权Spring嵌入式布局>身份),但我一直无法找到以编程方式实现它的脚本。我向Cytoscape提供包含所有必要信......
  • 搭建 STM32 网关服务器的全流程:集成嵌入式 C++、TCP/IP 通信、Flash 存储及 JWT 认证(
    引言随着物联网(IoT)技术的快速发展,基于STM32的服务器(类似网关)在数据采集、设备控制等方面的应用越来越广泛。本文将介绍搭建一个基于STM32的服务器所需的技术栈,以及详细的搭建步骤和代码示例。技术栈介绍在搭建基于STM32的服务器时,我们需要用到以下技术栈和组件:1.硬......
  • 6万字嵌入式最全八股文面试题大全及参考答案(持续更新)
    目录冒泡排序算法的平均时间复杂度和最坏时间复杂度分别是多少?在什么情况下使用冒泡排序较为合适?选择排序算法是稳定的排序算法吗?为什么?插入排序在近乎有序的数组中表现如何?为什么?快速排序的基本思想是什么?它在最坏情况下的时间复杂度是多少?归并排序的空间复杂度是多少?如......
  • 嵌入式学习第12天——C语言循环结构
    循环结构什么是循环代码的重复执行,就叫做循环。循环的分类无限循环:程序设计中尽量避免无限循环(程序中的无限循环必须可控)。有限循环:循环限定循环次数或者循环的条件。循环的构成循环体循环条件当型循环的实现while语法: while(循环条件) { 循环语句;......
  • 嵌入式day14
    数组的遍历(指针)迭代器([begin,end]):通过前一个元素找到了下一个元素(++),基于数组的有序性递归调用逆序:迭代器选择排序:迭代器冒泡排序:迭代器插入排序:快排(qsort):先设置基准数(begin),从右往左找,第一个比基准数小的数,从左往右找,第一个比基准数大的数,互换两个数,重复刚才的操作,......
  • 嵌入式day13
    指针地址和指针的概念指针是用来装地址的数据类型,其是一个变量变量的地址和指向变量的指针变量一般形式:指针变量名符合标识符定义的一般规则int*p:*为类型标识符指针变量p指向i   整型是用来装整数的数据类型;   指针是用来装地址的数据类型希望......
  • 嵌入式初学-C语言-练习二
    #针对于前六篇学习所出习题,题型内容均为本人敲写,若有不合理,或逻辑重复,请多多包涵,也请大家指点!!#1、通过键盘输入一个年份,判断是不是润年,是显示“是润年”,否则显示“不是润年”#include<stdio.h>intmain(){unsignedintyears;printf("输入一个年份\n");scanf("%d......
  • 嵌入式必备知识总结(一)
    计算机系统结构    计算机系统结构是计算机科学中的一个重要领域,研究计算机系统的设计和组织。计算机系统结构主要关注以下几个方面:1.计算机硬件组成a.中央处理单元(CPU)CPU是计算机的核心,负责执行指令并控制其他硬件组件。算术逻辑单元(ALU):执行算术和逻......
  • 【嵌入式】C51 和标准 C 语言的关键字对比详解
    目录C51和标准C语言的关键字对比详解1.概述2.C51和标准C语言的关键字对比2.1关键字对比表2.2对比表详细解释2.2.1C51特定关键字2.2.2标准C语言关键字2.3C51特定关键字2.4标准C语言关键字3.示例详细解释3.1C51特定关键字`bit``sfr``sbit``data`......