当前位置: 首页 > news >正文

嵌入式——C语言:函数②

        函数①的补充:extern(多文件编写一个代码时常用)

一、数组传参

(一)整型数组传递

        1.两种形式

                int        fun(int arr[5]);

                int        fun(int arr[], int len);

        2.注意:数组传递到函数体内部与外部操作是同一数组

(二)字符型数组传递

        int        fun(char str[]);

二、预处理命令

与#相关的内容

(一)宏定义

        1.不带参宏

                #define        PI        3.14

                宏名可以是小写,但是为了与变量区分一般用大写。

        2.带参宏(宏函数)

                #define        MAX(x, y)        x > y ? x : y

                

带参宏函数
无参数类型、返回值、函数类型概念有函数类型、返回值、并且实参类型需要转换为形参类型
只是代码替换,无调用传参过程有函数调用、传参过程
在程序编译时展开,代码体积增大程序运行时加载,代码体积不增大
没有传参过程,代码执行效率高函数有传参过程,需要调用,传参产生资源开销
简单代码想要封装模块使用需要严谨的代码逻辑,多行代码使用

        加括号解决以下问题

(二)头文件包含

        1.#include<stdio.h>

                1.1#include:包含一个文件,文件会在预处理编译时展开

                1.2<>:在系统目录下查找该头文件

                1.3"":先在当前目录下查找该文件,找不到再到系统目录找

        2.头文件包含

                2.1构造数据类型的定义

                2.2全局变量的声明

                2.3全局函数的声明

                2.4宏定义

        3.工程结构

        

                3.1main.c负责主函数编写

                3.2功能代码.c负责功能代码编写

                3.3功能代码.h主要负责声明功能代码.c的功能函数

                3.4调用函数的文件只需加对应函数的.h头文件即可使用该函数

(三)条件编译

        #if                                条件满足加入编译

        #elif                             如果if不满足条件elif满足加入编译   

        #else                            if不满足代码加入编译    

        #endif                           条件编译结束

        #ifdef                             定义了宏,代码加入编译

        #ifndef                           没有定义宏代码加入编译

http://www.dtcms.com/a/296350.html

相关文章:

  • webGis框架
  • 元计算推动产业元宇宙改变世界
  • 将Scrapy项目容器化:Docker镜像构建的工程实践
  • Web前端开发:JavaScript reduce() 方法
  • 借助AI学习开源代码git0.7之九diff-files
  • MCU中的系统总线
  • Android 与 Windows 文件路径的设计差异
  • 机器学习概述与 KNN 算法详解
  • ESP32- 项目应用1 智能手表 之更新天气#4
  • FANUC 机器人控制末端位置的示例程序
  • Windows 主机侧日志排查
  • 【YOLOv8改进 - 特征融合】FCM:特征互补映射模块 ,通过融合丰富语义信息与精确空间位置信息,增强深度网络中小目标特征匹配能力
  • 二、计算机网络技术——第5章:传输层
  • AWS S3 生命周期管理最佳实践:IoT Core 日志的智能存储优化
  • 康养休闲旅游服务虚拟仿真实训室:赋能人才培养的创新路径
  • Java:跨越时代的编程语言,持续引领技术潮流
  • [Office]数学公式插件
  • cri-docker部署高版本k8s
  • Windows 11 24H2 中文版安装教程(2025年4月更新版/官方ISO/详细步骤)
  • 实验-OSPF
  • 完成多项问题修复,MaxKB开源企业级智能体平台v1.10.9 LTS版本发布
  • 华为OpenStack架构学习9篇 连载—— 01 OpenStack架构介绍【附全文阅读】
  • 学习游戏制作记录(技能系统)7.24
  • Selenium基础教程
  • day46.通道注意力
  • Vue2——5
  • set集合(HashSet、LinkedHashSet、TreeSet)
  • MySQL数据库迁移至国产数据库测试案例
  • 二、计算机网络技术——第6章:应用层
  • 深入理解 ThreadLocal:从原理到最佳实践