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 



0 0
原创粉丝点击