C 语言学习第四天—函数和文件组织
来源:互联网 发布:淘宝免单网 编辑:程序博客网 时间:2024/06/07 22:50
函数是对功能的封装,引入函数概念是为了提高代码复用和可读性。
C语言函数可以分为三种:主函数,库函数,和自定义函数。
主函数
主函数在C语言中有且只有一个,所有的程序都是从主函数开始执行,在主函数中结束。
库函数
库函数本身不是C语言的一部分,但是支持标准C的实现会提供该函数库的函数声明,类型和宏定义。
常用的库函数分为以下几个部分 标准输入输出函数(如getchar getline scanf putchar printf),字符串函数(strcpy,strcmp)数学函数(sin cos pow sqrt)实用函数(atof,atoi)其他函数(不常用)
自定义函数
自定义函数是最常用的函数。一般分为声明和定义。
函数定义的一般格式是
返回值类型 函数名(参数声明){声明部分语句序列}
C语言是顺序编译的,只有后面的函数才可以调用前面定义的函数,有时候一个文件里函数太多,函数顺序不好确定,这时候我们需要在前面声明函数,这样就可以不受限制的调用函数。
声明的格式如下
返回值 函数名(参数声明);需要注意的是C语言中声明的格式必须和定义保持一致(返回值,函数名,参数表)
参数传递
C语言的参数传递是传值操作,及传递给函数的只是当前值的副本,对其改变不会影响传入的值
#inlcude<stdio.h>void PassValueTest(int a, int b){a = a+b;printf("a =%d\n",a);}int main(){int a =3, b=5;PassValueTest(a,b);printf("value = %d\n",a);}如果需要改变传入变量的值,比如数据交换函数swap,那么我们需要用到指针方面的知识。传入地址值来间接改变该地址对应的值。
#include<stdio.h>void swap(int*a, int*b){ *a=*a^*b; *b=*a^*b; *a=*a^*b; } int main(){ int a=3, b=5; printf("a=%d,b=%d\n",a,b); swap(&a,&b); printf("a=%d,b=%d\n",a,b); getchar(); }
文件组织
函数过多时我们会遇到在一个文件中管理大量代码的问题,这会给我们修改该文件带来大量问题,如函数不好定位,非修改部分被意外修改等等, 这时候我们需要用到头文件相关的知识。我们通常把主函数单独放在mian.c 中将其他函数按照功能分类放到其他.c 文件中,在同名的.h文件中添加该函数的声明,通过include 命令来处理文件之间的包含关系。
#include 命令会在编译前宏扩展的时候把对应文件添加到当前语句的位置,以完成文件组织,说白了就是在编译器眼里所有的文件都是一个文件,文件组织的意义就是人为的分割函数,以提升可读性和安全性。
常用的文件组织相关命令和关键字如下
extern
#include
#if
#ifndef
#define
- C 语言学习第四天—函数和文件组织
- C语言头文件组织与包含原则(函数指针和结构体的前项声明)
- C语言头文件组织
- C语言头文件组织
- C语言头文件组织
- C语言代码文件组织
- 学习C语言的第四天
- 学习C语言的第四天
- C语言第四节-函数
- C语言第四章:函数
- C语言第四天
- C语言及程序设计实践项目-递归和多文件组织
- C++学习笔记(第四章 函数的应用及多文件组织 之二)
- C++学习笔记(第四章 函数的应用及多文件组织 之三)
- C语言学习—函数
- [黑马IOS自学第四篇]C语言函数,进制,Unix命令、函数学习
- 《JavaScript 语言精粹》 学习笔记 —— 第四章 函数
- 嵌入式学习笔记(第四天)c语言续
- C语言学习第三天—控制流
- 网页中调起本地程序系列——简介篇
- android中Activity切换动画学习心得
- 论战Yann LeCun:谁能解释极限学习机(ELM)牛X在哪里?
- CWnd常用函数讲解
- C 语言学习第四天—函数和文件组织
- 思维拓展-记孩子疫苗接种登记
- C语言学习第五天—递归
- servlet的生命周期
- gxx_slide之城市规划
- Markdown语法的简要规则学习
- Java基础中关于多态转换异常的问题
- Oracle使用DBWS调用SSL/HTTPS的Webservice方法
- C语言学习第六天—预处理命令