C语言函数

一、函数

C语言程序是由函数构成的,每个函数负责完成一部分的功能,函数将工恩呢该封装起来,以供程序调用。

二、函数定义

目的:将一些常用的功能封装起来,以供日后调用。

步骤:确定函数名,确定函数体,调用

格式:返回值类型 函数名(形式参数列表)

{  函数体 }

三、函数调用

定义函数需要明确定的东西:

①. 取一个有意义的函数名

②. 确定函数的形参

③. 编写函数体

④. 返回值

示例:

Int average(int num1,int num2)

{

Return  (num1+num2)/2;

}

int main()

{

Int a=1;

Int b=3;

Int c=average(a,b); //调用函数

Return 0;

}

四、参数

①. 形参:定义函数时,函数名后面的参数 如num1和num2

②. 实参:调用函数时,传人的具体数据   如a和b

③. 形参和实参的个数必须相等

④. 函数体内部不能定义和形参同名的变量

⑤. 如果是基本的数据类型作为形参,则是纯粹的值传递,修改函数内部形参的值并不会影响到实参的值

⑥. 一个函数可以没有形参,也可以有无限个形参

五、函数的返回值

(一)Return 的作用:

①. 退出函数

②. 返回一个具体的值给函数的调用者

(二)返回值使用注意:

①. C语言是弱语法弱类型的语言,非常不严格

②. 如果没有写清楚返回值的类型,则默认为int型的

③. Void代表没有返回值

④. 就算明确声明了返回值类型,也可以不返回任何的值

⑤. C语言默认情况下,不允许有两个同名的函数

六、函数使用注意

①. 默认不允许函数重名

②. 函数之间是平等的,不能够嵌套定义

③. 函数不可以重复定义,但是可以重复声明,只要是在调用前声明就可以,地方随便

④. 函数如果是只要声明没有定义,那么编译可以成功,但链接时会失效

七、多人协作

#include<.stdio.h>是一个系统头文件。

#include<abc.txt>相当于把abc.txt文件中的所用内容以纯文本的方式拷贝到当前位置。

“”表示文件与.c文件处于同一路径,可以使用相对路径也可以使用绝对路径。左边有/的是绝对路径,没有/则为相对路径。

注意:自定义的文件使用“”,系统文件使用<>。

函数如果在调用时,函数定义在调用之后,且前面没有进行相应的声明,则编译器报错;

调用函数,没有函数声明,编译器不会报错,链接时报错,不定义函数反而不报错。

链接:把项目中所以相关的.o目标文件和c语言的函数库合并在一起,生成可执行文件。

通常:

①. 函数的定义放在.c文件中,函数的声明放在.h文件中

②. 如果要是有某个.c文件中定义的函数,只需要包含.c文件对应的.h文件即可

③. .h文件生下来就是打酱油被别人拿来拷贝包含的,编译链接时不用写出

八、补充

(1)main函数的返回值是返回给操作系统的,0为正常退出,其他值为非正常退出。用以进行系统日志,其实它返回任何值对程序本身没有影响,仅仅只是标记

(2)Printf函数的返回值为字符数。如printf(“abc”);则返回值为3,若printf(“abc男\n”);的返回值为7,因为一个中文占3个字符。

李洪强-C语言5-函数的更多相关文章

  1. 李洪强 - C语言8-Scanf函数

    C语言的scanf函数 一.变量的内存分析 (一)字节与地址 ①. 内存以字节为单位 每个字节都有自己的内存地址,根据地址就可以找到该字节.整个内存相当于一整个酒店,而酒店以房间为单位,在这里每个房间 ...

  2. 李洪强-C语言关键字、标识符和注释

    一.关键字 C语言提供的有特殊含义的符号,共32个. 在Xcode中关键字全部高亮显示,关键字全部都为小写.如return.int等. 二.标识符 定义:标识符是程序员在程序中自定义的一些符号和名称. ...

  3. 李洪强-C语言9-C语言的数据,变量和常量

    一.数据 图片文字等都是数据,在计算机中以0和1存储. (一)分类 数据分为静态数据和动态数据. ①. 静态数据:一些永久性的的数据,一般存储在硬盘中,只要硬盘没坏数据都是存在的.一般以文件的形式存储 ...

  4. 李洪强-C语言4-内存分析

    C语言内存分析 一.进制 概念:进制是一种计数方式,是数值的表现形式 4种主要的进制: ①. 十进制:0~9 ②. 二进制:0和1 ③. 八进制:0~7 ④. 十六进制:0~9+a b c d e f ...

  5. 李洪强-C语言2-字符串

      C语言字符串 一.字符串基础 注意:字符串一定以\0结尾. Printf(“yang\n”); 其中yang为字符串常量,“yang”=‘y’+‘a’+‘n’+‘g’+‘\0’.字符串由很多的字符 ...

  6. 李洪强-C语言1-指针

    C语言指针 前导程序   一.基本知识点 Int a=10; Int *p;//定义一个int类型的指针 P=&a;//指针变量p指向了变量a *p=20;//使用指针不通过变量直接修改变量a ...

  7. 李洪强-C语言7-C语言运算符

    C语言运算符 一.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. ①. 加法:+ 还可以表示正号 ②. 减法:- 还可以表示负号 ③. 乘法:* 非数学意义上的X ④. 除法:/  注意 ...

  8. 李洪强-C语言6-控制结构

    C语言流程控制 一.流程控制结构 (1)顺序结构:按书写顺序执行每一条语句. (2)选择结构:对给定的条件进行判断,根据判断结果决定执行哪一段代码. (3)循环结构:在给定条件成立的情况下,反复执行某 ...

  9. 李洪强-C语言3-数组

    一.数组的概念 用来存储一组数据的构造数据类型 特点:只能存放一种类型的数据,如全部是int型或者全部是char型,数组里的数据成为元素. 二.数组的定义 格式: 类型 数组名[元素个数]: 举例:存 ...

随机推荐

  1. 【OpenStack】OpenStack系列4之Glance详解

    下载安装 参考:http://www.linuxidc.com/Linux/2012-08/68964.htm http://www.it165.net/os/html/201402/7246.htm ...

  2. spring boot实战(第十三篇)自动配置原理分析

    前言 spring Boot中引入了自动配置,让开发者利用起来更加的简便.快捷,本篇讲利用RabbitMQ的自动配置为例讲分析下Spring Boot中的自动配置原理. 在上一篇末尾讲述了Spring ...

  3. 《转》Visual Studio 2010 终极定制安装精简方法

    打开VS2010安装目录下的 Setup 文件夹,找到 baseline.dat 文件和 vs_setup.pdi 文件还有一个 locdata.ini 文件,是对应的. 这些都是文本文件,用记事本就 ...

  4. IE8 不支持html5 placeholder的解决方案

    IE8不支持html5 placeholder的解决方法. /** * jQuery EnPlaceholder plug * version 1.0 2014.07.01戈志刚 * by Frans ...

  5. iOS xib中TableView创建的2种模式

    在xcode 5.0中 用xib编辑tableview有2种模式,见下图 其中,dynamic prototype 动态原型 表示tableview会询问它指定的 data source获取数据,如果 ...

  6. 利用FFmpeg生成视频缩略图 2.3.1

    1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下. 下载地址 http://ffmpeg.zeranoe.com/builds/win32/static/ ...

  7. Win8 Cisco VPN Client 442错误解决办法

    进入注册表regedit,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CVirtA找到DisplayName, x86系统的将值" ...

  8. 一、HTML和CSS基础--网页布局--如何用css进行网页布局

    什么叫做布局? 又称版式布局,是网页UI设计师将有限的视觉元素进行有机的排列组合. 网页设计的特点 网页可以自适应宽度 网页的高度理论上可以无限延长 网页分栏 分栏又称为分列,常见的布局分为:一列布局 ...

  9. iptables 开启3306端口

    [root@mysqld ~]# mysql -uroot -h 192.168.1.35 -p Enter password: ERROR 1130 (HY000): Host '192.168.1 ...

  10. C# 如何判断系统是否是静音

    推荐的方法,使用CoreAudioApi.dll,仅在win7上测试过: private MMDevice defaultDevice = null; //判断当前系统扬声器状态 private bo ...