C语言 【函数】

1.函数概述

函数是一种可重用的代码块,用于执行特定任务或完成特定功能

函数作用:对具备相同逻辑的代码进行封装,提高代码的编写效率,实现对代码的重用

2. 函数的使用 

2.1 无参无返回值

#include <stdio.h>//   函数名是标识符的一种,需要遵循规则
//   函数只需要定义一次,反复调用
//   只定义函数, 不调用函数, 函数永远不会被执行
void add(){int res = 1+2;printf("%d\n",res);}
int main() {add();return 0;
}
;

执行流程: 

注: 函数名是标识符的一种,需要遵循规则

        函数只需要定义一次,反复调用

        只定义函数, 不调用函数, 函数永远不会被执行

2.2 有参无返回值

函数参数的作用:增加函数的灵活性

可以根据需求在调用函数时, 通过参数传入不同的数据

语法格式:

// 函数定义
void 函数名(形参列表) {
    函数体
}

// 函数调用
函数名(实参列表);

执行流程:

2.3 有参有返回值

函数返回值的作用:函数外部想使用函数内部的数据

注意:return的作用是结束函数函数内,return后面的代码不会执行

3.函数的声明

如果函数定义代码没有放在函数调用的前面,这时候需要先做函数的声明

所谓函数声明,相当于告诉编译器,函数是有定义的,再别的地方定义,以便使编译能正常进行

注意:一个函数只能被定义一次,但可以声明多次

4. 局部变量和全局变量

4.1 局部变量

定义在函数内部的变量称为局部变量(Local Variable)

局部变量的作用域(作用范围)仅限于函数内部, 离开该函数后是无效的

离开该函数后,局部变量自动释放

4.2 全局变量

在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件

5. 多文件编程(重点)

5.1 防止头文件重复包含

当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含。

为了避免同一个文件被include多次,C/C++中有两种方式。

方法一:

#ifndef __SOMEFILE_H__ 
#define __SOMEFILE_H__ 

// 声明语句 

#endif

方法二(嵌入式不能用):

#pragma once // 声明语句

5.2 命令行编译程序

gcc -g main.c func.c -o main.exe

  • -g 指定编译的文件,多个文件用空格隔开。注意:只需要编译c文件,h文件不需要加入进去;
  • -o 指定生成可执行文件的名字;

ps:命令行显示中文乱码,修改命令:chcp 65001

5.3 头文件包含的区别:

  • <> 表示系统直接按系统指定的目录检索

  • "" 表示系统先在 "" 指定的路径(没写路径代表当前路径)查找头文件,如果找不到,再按系统指定的目录检索

多文件编程运行结果出现中文乱码:在命令行输入:chcp 65001 再编译执行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/312467.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWS Key disabler:AWS IAM用户访问密钥安全保护工具

关于AWS Key disabler AWS Key disabler是一款功能强大的AWS IAM用户访问密钥安全保护工具&#xff0c;该工具可以通过设置一个时间定量来禁用AWS IAM用户访问密钥&#xff0c;以此来降低旧访问密钥所带来的安全风险。 工具运行流程 AWS Key disabler本质上是一个Lambda函数&…

Methoxy PEG Propionic acid具有良好的亲水性和分子量可控性

【试剂详情】 英文名称 mPEG-PA&#xff0c;mPEG-Propionic acid&#xff0c; Methoxy PEG PA&#xff0c; Methoxy PEG Propionic acid 中文名称 聚乙二醇单甲醚丙酸&#xff0c; 甲氧基-聚乙二醇-丙酸 外观性状 由分子量决定&#xff0c;固体或者液体 分子量 400&…

在Postgres中,如何有效地管理大型数据库的大小和增长

文章目录 一、定期清理和维护1. VACUUM和ANALYZE2. 删除旧数据和归档 二、分区表三、压缩数据四、配置优化1. 调整维护工作负载2. 监控和日志 五、使用外部存储和扩展1. 外部表和FDW2. 扩展和插件 六、定期备份和恢复测试结论 管理大型数据库的大小和增长是数据库管理员&#x…

粒子群算法及基于该算法的典型问题求解实践

说明 我在上个月(3.15&#xff0c;时间过得真快&#xff0c;已经一个月了…)写了两篇关于遗传算法的博文[1]&#xff1a;遗传算法及基于该算法的典型问题的求解实践-CSDN博客 和[2]&#xff1a;基于遗传算法的波束形成优化-仿真实践-CSDN博客&#xff0c;当时关注到该算法时&am…

Vuforia AR篇(一)— 开启AR之门

目录 前言一、 Vuforia Engine简介二、主要功能与特点2.1 图像识别2.2 VuMarks技术2.3 多目标识别2.4 圆柱体目标识别2.5 平面跟踪技术2.6 云服务支持2.7 模型目标识别2.8 区域目标识别 三、平台兼容性四、技术实现结语 前言 随着科技的不断发展&#xff0c;增强现实&#xff…

授权协议OAuth 2.0之如何接入授权服务

写在前面 为了能够更好以场景化的方式来理解OAuth2.0&#xff0c;本文一起看下&#xff0c;假定我们现在要开发一个交友类软件&#xff0c;为了提高用户登录的便利程度&#xff0c;需要对接微信开放平台&#xff0c;获取到用户的微信账号信息&#xff0c;作为用户的注册信息来…

Java面试八股文(JVM篇)(❤❤)

Java面试八股文_JVM篇 1、知识点汇总2、知识点详解&#xff1a;3、说说类加载与卸载11、说说Java对象创建过程12、知道类的生命周期吗&#xff1f;14、如何判断对象可以被回收&#xff1f;17、调优命令有哪些&#xff1f;18、常见调优工具有哪些20、你知道哪些JVM性能调优参数&…

Unity Pro 2019 for Mac:专业级游戏引擎,助力创意无限延伸!

Unity Pro 2019是一款功能强大的游戏开发引擎&#xff0c;其特点主要体现在以下几个方面&#xff1a; 强大的渲染技术&#xff1a;Unity Pro 2019采用了新的渲染技术&#xff0c;包括脚本化渲染流水线&#xff0c;能够轻松自定义渲染管线&#xff0c;通过C#代码和材料材质&…

react v18 项目初始化

按照以下命令进行傻瓜式操作即可&#xff1a; 全局安装脚手架工具&#xff1a; npm install -g create-react-app创建项目my-react-app&#xff1a; create-react-app my-react-app安装 antd: yarn add antd安装 react-router-dom&#xff1a; yarn add react-router-dom启动项…

第十五届蓝桥杯大赛软件赛省赛 C/C++ 大学 B 组(基础题)

试题 C: 好数 时间限制 : 1.0s 内存限制: 256.0MB 本题总分&#xff1a;10 分 【问题描述】 一个整数如果按从低位到高位的顺序&#xff0c;奇数位&#xff08;个位、百位、万位 &#xff09;上 的数字是奇数&#xff0c;偶数位&#xff08;十位、千位、十万位 &…

汽车咨询|基于SprinBoot的汽车资讯管理系统设计与实现(源码+数据库+文档)

汽车资讯管理系统目录 基于SprinBoot的汽车资讯管理系统设计与实现 一、前言 二、系统设计 三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&#xff…

机器学习基础入门(一)(机器学习定义及分类)

机器学习定义 给予计算机无需特意带有目的性编程便有学习能力的算法 深度学习算法 主要有监督学习和非监督学习两类 监督学习&#xff08;supervised learning&#xff09; 定义 1、学习由x映射到y的映射关系 2、主动给予机器学习算法正确示例&#xff0c;算法通过示例来学习…

意大利侍酒师Galvan Maurizia分享意大利葡萄酒与美食文化魅力

在酒水行业日益繁荣的今天&#xff0c;消费者对酒类产品的品质、文化和品味的追求不断提升。为了满足这一市场需求&#xff0c;云仓酒庄近日宣布开启首届《综合品酒师》培训&#xff0c;旨在培养更多具备专业素养和品鉴能力的品酒师&#xff0c;为酒水行业的专业化和形象提升注…

PTA 编程题(C语言)-- 统计字符

题目标题&#xff1a;统计字符 题目作者&#xff1a;颜晖 浙大城市学院 本题要求编写程序&#xff0c;输入10个字符&#xff0c;统计其中英文字母、空格或回车、数字字符和其他字符的个数。 输入格式: 输入为…

Gradle系列(3)——Gradle extension(gradle扩展),如何自定义gradle扩展,AppPlugin,AppExtension原理

文章目录 1.什么是Extensions2.如何自定义Extension3.问题来了——如何通过自定义Extension给Plugin传递数据4.BaseAppModuleExtension和AppPlugin部分原理BuildTypes是如何创建并传递数据给AppPlugin的&#xff1f;AppPlugin是如何接收数据的&#xff1f;buildTypeContainer流…

AI光芯登上Science,开启算力新纪元

智能光芯片“太极”&#xff1a;清华大学的科技壮举&#xff0c;开启算力新纪元 在科技的浩瀚星海中&#xff0c;每一次创新都是对未知世界的探索和征服。近日&#xff0c;清华大学电子工程系与自动化系的联合团队&#xff0c;凭借其深厚的科研实力和创新精神&#xff0c;研发出…

Java | Leetcode Java题解之第32题最长的有效括号

题目&#xff1a; 题解&#xff1a; class Solution {public int longestValidParentheses(String s) {int left 0, right 0, maxlength 0;for (int i 0; i < s.length(); i) {if (s.charAt(i) () {left;} else {right;}if (left right) {maxlength Math.max(maxlen…

基于Springboot+Vue的Java项目-高校心理教育辅导系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…

docker网路和主机通讯问题

#注 1&#xff0c;安装docker和启动容器服务的时候如果防火墙处于开启状态&#xff0c;那么重启docker里面的容器的时候必须开启防火墙&#xff0c;否则会出现iptable错误&#xff1b; 2&#xff0c;linux开启防火墙会导致主机和docker网络之间单向通讯&#xff0c;主机可以访…

Big Data and Cognitive Computing (IF=3.7) 计算机/大数据/人工智能期刊投稿

Special Issue: Artificial Cognitive Systems for Computer Vision 欢迎计算机/大数据/人工智能/计算机视觉相关工作的投稿&#xff01; 影响因子3.7&#xff0c;截止时间2024年12月31日 投稿咨询&#xff1a;lqyan18fudan.edu.cn 投稿网址&#xff1a;https://www.mdpi.com/j…