c语言的函数头

作者&投稿:蹉豪 (若有异议请与网页底部的电邮联系)
c语言中自定义函数的头文件是什么?~

#include
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

c语言中的头文件:#include。
头文件的作用:
1.头文件可以定义所用的函数列表,方便查阅你可以调用的函数。

2.头文件可以定义很多宏定义,就是一些全局静态变量的定义,在这样的情况下,只要修改头文件的内容,程序就可以做相应的修改,不用亲自跑到繁琐的代码内去搜索。
3.头文件只是声明,不占内存空间,要知道其执行过程,要看你头文件所申明的函数是在哪个.c文件里定义的,才知道。
拓展资料:C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

在一个函数定义中,函数体之前的所有部分称为函数头,它给出了该函数的返回类型、每个参数的次序和类型等函数原型信息,所以当没有专门给出函数原型说明语句时,系统就从函数头中获取函数原型信息。

一个函数的原型语句就是其函数头的一个拷贝,当然要在最后加上语句接上结束符分号。函数原型语句与函数头也有细微的差别,在函数原型语句中,其参数表中的每个参数允许只保留参数类型,而省略参数名,并且若使用参数名也允许与函数头中对应的参数名不同。

全文如下:
一)、定义格式
<类型名> <函数名> ([<参数表>]) <函数体>

<类型名>为系统或用户已定义的一种数据类型,它是函数执行过程中通过return语句要求返回的值的类型,又称为该函数的类型。当一个函数不需要通过return语句返回一个值时,称为无返回值函数或无类型函数,此时需要使用保留字void作为类型名。当类型名为int时,可以省略不写,但为了清楚起见,还是写明为好。

<函数名>是用户为函数所起的名字,它是一个标识符,应符合C++标识符的一般命名规则,用户通过使用这个函数名和实参表可以调用该函数。

<参数表>又称形式参数表,它包含有任意多个(含0个,即没有)参数说明项,当多于一个时其前后两个参数说明项之间必须用逗号分开。每个参数说明项由一种已定义的数据类型和一个变量标识符组成,该变量标识符成为该函数的形式参数,简称形参,形参前面给出的数据类型称为该形参的类型。一个函数定义中的<参数表>可以被省略,表明该函数为无参函数,若<参数表>用void取代,则也表明是无参函数,若<参数表>不为空,同时又不是保留字void,则称为带参函数。

<函数体>是一条复合语句,它以左花括号开始,到右花括号结束,中间为一条或若干条C++语句。

在一个函数的参数表中,每个参数可以为任一种数据类型,包括普通类型、指针类型、数组类型、引用类型等,一个函数的返回值可以是除数组类型之外的任何类型,包括普通类型、指针类型和引用类型等。另外,当不需要返回值时,应把函数定义为void类型。
二)、定义格式举例
(1) void f1() {...}

(2) void f2(int x) {...}

(3) int f3(int x,int* p) {...}

(4) char* f4(char a[]){...}

(5) int f5(int& x,double d) {...}

(6) int& f6(int b[10], int n) {...}

(7) void f7(float c[][N], int m, float& max) {...}

(8) bool f8(ElemType*& bt, ElemType& item) {...}

在第一条函数定义中,函数名为f1,函数类型为void,参数表为空,此函数是一个无参无类型函数。若在f1后面的圆括号内写入保留字void,也表示为无参函数。

在第二条函数定义中,仅带有一个类型为int的形参变量x,该函数没有返回值。

在第三条函数定义中,函数名为f3,函数类型为int,函数参数为x和p,其中x为int型普通参数,p为int*型指针参数。

在第四条函数定义中,函数名为f4,函数类型为char*,即字符指针类型,参数表中包含一个一维字符数组参数。注意:在定义任何类型的一维数组参数时,不需要给出维的尺寸,当然给出也是允许的,但没有任何意义。

在第五条函数定义中,函数名为f5,返回类型为int,该函数带有两个形参,一个为 整型引用变量x,另一个为双精度变量d。

在第六条函数定义中,函数名为f6,函数类型为int&,即整型引用,该函数带有两个形参,一个是整型数组b,另一个是整型变量n。在这里定义形参数组b所给出的维的尺寸10可以被省略。

在第七条函数定义中,函数名为f7,无函数类型,参数表中包含三个参数,一个为二维单精度型数组c,第二个为整型变量m,第三个为单精度引用变量max。注意:当定义一个二维数组参数时,第二维的尺寸必须给出,并且必须是一个常量表达式,第一维尺寸可给出也可不给出,其作用相同。

在第八条函数定义中,函数名为f8,返回类型为bool,即逻辑类型,该函数带有两个参数,一个为形参bt,它为ElemType的指针引用类型,另一个为形参item,它是ElemType的引用类型,其中ElemType为一种用户定义的类型或是通过typedef语句定义的一个类型的别名。
三)、有关函数定义的几点说明
1. 函数原型语句

在一个函数定义中,函数体之前的所有部分称为函数头,它给出了该函数的返回类型、每个参数的次序和类型等函数原型信息,所以当没有专门给出函数原型说明语句时,系统就从函数头中获取函数原型信息。

一个函数必须先定义或声明而后才能被调用,否则编译程序无法判断该调用的正确性。一个函数的声明是通过使用一条函数原型语句实现的,当然使用多条相同的原型语句声明同一个函数虽然多余但也是允许的,编译时不会出现错误。

在一个完整的程序中,函数的定义和函数的调用可以在同一个程序文件中,也可以处在不同的程序文件中,但必须确保函数原型语句与函数调用表达式出现在同一个文件中,并且函数原型语句出现在前,函数的调用出现在后。

通常把一个程序中用户定义的所有函数的原型语句组织在一起,构成一个头文件,让该程序中所含的每个程序文件的开始(即所有函数定义之前)包含这个头文件(通过#include命令实现),这样不管每个函数的定义在哪里出现,都能够确保函数先声明后使用(即调用)这一原则的实现。

一个函数的原型语句就是其函数头的一个拷贝,当然要在最后加上语句接上结束符分号。函数原型语句与函数头也有细微的差别,在函数原型语句中,其参数表中的每个参数允许只保留参数类型,而省略参数名,并且若使用参数名也允许与函数头中对应的参数名不同。

2. 常量形参

在定义一个函数时,若只允许函数体访问一个形参的值,不允许修改它的值,则应把该形参说明为常量,这只要在形参说明的前面加上const保留字进行修饰即可。如:

void f9(const int& x, const char& y);

void f10(const char* p, char key);

在函数f9的函数体中只允许使用x和y的值,不允许修改它们的值。在函数f10的函数体中只允许使用p所指向的字符对象或字符数组对象的值,不允许修改它们的值,但在函数体中既允许使用也允许修改形参key的值。

3. 缺省参数

在一个函数定义中,可根据需要对参数表末尾的一个或连续若干个参数给出缺省值,当调用这个函数时,若实参表中没有给出对应的实参,则形参将采用这个缺省值。如:

void f11(int x, int y=0) {...}

int f12(int a[], char op='+', int k=10) {...}

函数f11的定义带有两个参数,分别为整型变量x和y,并且y带有缺省值0,若调用该函数的表达式为f11(a,b),将把a的值赋给x,把b的值赋给y,接着执行函数体;若调用该函数的表达式为f11(a+b),则也是正确的调用格式,它将把a+b的值赋给x,因y没有对应的实参,将采用缺省值0,参数传送后接着执行函数体。

函数f12的定义带有三个参数,其中后两个带有缺省值,所以调用它的函数格式有三种,一种只带一个实参,用于向形参a传送数据,后两个形参采用缺省值,第二种带有两个实参,用于分别向形参a和op传送数据,第三个形参采用缺省值,第三种带有三个实参,分别用于传送给三个形参。

若一个函数带有专门的函数原型语句,则形参的缺省值只能在该函数原型语句中给出,不允许在函数头中给出。如对于上述的f11和f12函数,其对应的函数原型语句分别为:

void f11(int x, int y=0);

int f12(int a[], char op='+', int k=10);

函数定义应分别改写为:

void f11(int x, int y) {...}

int f12(int a[], char op, int k) {...}

4. 数组参数

在函数定义中的每个数组参数实际上是指向元素类型的指针参数。对于一维数组参数说明:

<数据类型> <数组名>[]

它与下面的指针参数说明完全等价:

<数据类型> *<指针变量名>

其中<指针变量名>就是数组参数说明中的<数组名>。如对于f12函数定义中的数组参数说明int a[],等价于指针参数说明int* a。也就是说,数组参数说明中的数组名a是一个类型为int*的形参。注意:在变量定义语句中定义的数组,其数组名代表的是一个数组,它的值是指向第一个元素的指针常量,这与数组形参的含义有区别。

对于二维数组参数说明:

<数据类型> <参数名>[][<第二维尺寸>]

它与下面的指针参数说明完全等价:

<数据类型> (*<参数名>)[<第二维尺寸>]

如对于f7函数定义中的二维数组参数说明float c[][N],等价于指针参数说明float(*c)[N]。

5. 函数类型

当调用一个函数时就执行一遍循环体,对于类型为非void的函数,函数体中至少必须带有一条return语句,并且每条return语句必须带有一个表达式,当执行到任一条return语句时,将计算出它的表达式的值,结束整个函数的调用过程,把这个值作为所求的函数值带回到调用位置,参与相应的运算;对于类型为void的函数,它不需要返回任何函数值,所以在函数体中既可以使用return语句,也可以不使用,对于使用的每条return语句不允许也不需要带有表达式,当执行到任一条return语句时,或执行到函数体最后结束位置时,将结束函数的调用过程,返回到调用位置向下继续执行。

6. 内联函数

当在一个函数的定义或声明前加上关键字inline则就把该函数声明为内联函数。计算机在执行一般函数的调用时,无论该函数多么简单或复杂,都要经过参数传递、执行函数体和返回等操作。若把一个函数声明为内联函数后,在程序编译阶段系统就有可能把所有调用该函数的地方都直接替换为该函数的执行代码,由此省去函数调用时的参数传递和返回操作,从而加快整个程序的执行速度。通常可把一些相对简单的函数声明为内联函数,对于较复杂的函数则不应声明为内联函数。从用户的角度看,调用内联函数和一般函数没有任何区别。下面就是一个内联函数定义的例子,它返回形参值的立方。

inline int cube(int n)

{

return n*n*n;

}

就是软件里面原先已经定义好的一些头文件,一般用#include"需要的函数头文件"包含进来。
譬如你在一个文件开头加了#include"studio.h",你就可以用printf函数了,如果不包含那个头文件,编译时会出现printf函数未定义的错误

与函数原型不同


c语言的函数头和函数体的区别是什么?
在C语言中一个函数一般由两个部分组成一个是函数头,一个是函数体。函数体是编程语言中定义一个函数功能的所有代码组成的整体。函数体是用花括号括起来的若干语句,他们完成了一个函数的具体功能。函数体内的前面是定义和说明部分,后面是语句部分。函数声明与函数体放在一起组成了函数定义。函数头是指函...

c语言中一个函数由函数首部和什么两部分
c语言中一个函数由函数首部和函数体组成,函数体是编程语言中定义一个函数功能的所有代码组成的整体;函数头是指函数体之前的所有部分,应用于数学、程序设计领域,作用是给出了该函数的返回类型。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级...

c语言的函数头
在一个函数定义中,函数体之前的所有部分称为函数头,它给出了该函数的返回类型、每个参数的次序和类型等函数原型信息,所以当没有专门给出函数原型说明语句时,系统就从函数头中获取函数原型信息。一个函数的原型语句就是其函数头的一个拷贝,当然要在最后加上语句接上结束符分号。函数原型语句与函数头也有细微的差别,...

在C语言中函数包括哪些部分?
包括返回值,函数名,形参列表和函数体四个部分。例如 :int findmin(int a[],int n){ \/\/函数体 return min;} 以上函数int 是返回值,findmin是函数名, int a[] int n是形参列表

C语言中的头文件、主函数和库函数有什么用?
1、头文件:头文件包含程序中要调用的库函数。例如#include<stdio.h> 2、main函数:程序的主体部分,是整个C程序中必不可少的一部分。3、若干个子函数。需要实现诸多功能,如果仅在mian()函数中编辑,会造成程序可读性变差。

C语言中一个函数有两部分组成,即函数首部和函数体...
scanf和printf函数是系统定义的函数,函数的首部和函数体在定义的时候有。我们用的时候一直看到的是已经定义好了的,系统默认有效的。所以不需要在程序开头重新写出来函数头部分。

c语言中使用数学函数时的头文件怎么定义
1、C语言中,数学函数是函数的一种。指专门进行数学运算的函数,一般都在<math.h>头文件下。头文件定义为#include<math.h>即可。2、数学函数列表:1)int abs(int i); 求整数的绝对值。2)long labs(long n); 求长整型数的绝对值。3)double fabs(double x); 求实数的绝对值。4)double ...

C语言中,函数的首部一般由三个部分组成,它们是
返回值类型,如void,float,int,char等等。如果未写,则默认为int型。调用的函数名 括号内写上所传递的数据类型和用来接收数据的变量。如(float num1,int num2)且数据类型及数量与调用函数时一致 举例子:int sq(int a,int b);

c语言有多少个头文件名?
字符函数和字符串函数头文件:"string.h","ctype.h"输入输出函数头文件:"stdio.h"动态存储分配函数头文件:"stdlib.h"c语言还允许用户自定义头文件 补充一下"malloc.h"是动态存储分配函数的头文件,ANSI标准建议在"stdlib.h"中包含,不过许多的C编译系统要求在使用该函数是要用"malloc.h",而不是...

C语言函数三要素是什么
C语言函数三要素是:定义域、值域和对应法则。一,C语言函数定义域 (1)无参函数定义的一般形式如下:类型标识符 函数名(){ 声明部分 语句 } 其中类型标识符和函数名称为函数头。类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类型。该类型标识符与前面介绍的各种说明符相同。函数名...

让胡路区17187518556: 在C语言里什么是函数头?
标童华仁: 就是软件里面原先已经定义好的一些头文件,一般用#include"需要的函数头文件"包含进来. 譬如你在一个文件开头加了#include"studio.h",你就可以用printf函数了,如果不包含那个头文件,编译时会出现printf函数未定义的错误

让胡路区17187518556: c语言中自定义函数的头文件是什么? -
标童华仁: 自定义函数的头文件一般遵循以下原则: 1 功能类似或相关的一组函数写在同一个头文件中; 2 头文件命名应简单,尽量短,但可以通过文件名得知内部函数功能; 3 头文件名由数字、字母、下划线组成,不要有空白字符或其它符号; 4 为防止头文件重复引用,或嵌套引用,头文件应使用条件编译包含; 5 头文件中,应遵循先类型定义,后函数声明的顺序; 6 当头文件函数声明中,用到其它头文件中定义的类型时,在头文件开始处进行引用.

让胡路区17187518556: C语言中函数的头文件名共有多少个?分别是哪些? -
标童华仁: C/C++头文件一览 C、传统 C++#include //设定插入点 #include //字符处理 #include //定义错误码 #include //浮点数处理 #include //文件输入/输出 #include //参数化输入/输出 #include //数据流输入/输出 #include //定义各种数据类型最值...

让胡路区17187518556: C语言中有哪些常用的头文件和函数,最好能举个例子(简单易懂的)
标童华仁: 你天天都用的 <stdio.h> 标准输入输出流 <math.h> 数学函数头文件 你可以再网上查到的 很多 哦 有一个很重要 非常常用 <string.h> 字符串处理头文件 好好学里面的函数 要编写点有用的程序一定要这个的 不过要先把数组和指针学好

让胡路区17187518556: 在C++语言中,一个函数由函数头和什么组成? -
标童华仁: 函数头和函数体

让胡路区17187518556: c语言中,我们写的函数的头文件stdio.h是表示存放的函数的声明还是函数本身??函数的声明和函数 -
标童华仁: 函数的头文件stdio.h是表示存放的函数的声明!而不是函数本身.声明在你下面编写的程序中,会用到stdio.h输入输出库函数中的函数.

让胡路区17187518556: C语言主函数和头文件是什么意思 -
标童华仁: 主函数是一个程序的入口,程序第一个执行的函数. 头文件就是一个函数的仓库,在C中使用某函数必须包含对应头文件.

让胡路区17187518556: 在c语言编程中若出现自定义的函数,需要引入什么头文件 -
标童华仁: 看这个函数是哪个头文件提供的,直接引用写有函数主体的头文件即可.若在源程序里就定义了,什么头文件也不要.

让胡路区17187518556: c语言中如何定义,添加头文件 -
标童华仁: C语言头文件常用格式如下:1 2 3 4#ifndef LABEL #define LABEL //代码部分 #endif 其中,LABEL 为一个唯一的标号,命名规则跟变量的命名规则一样.常根据它所在的头文件名来命名. 举例如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

让胡路区17187518556: 请问C语言怎么把函数放在头文件里面呢
标童华仁: 你可以创建头文件,头文件是以".h"结尾的文件名,而main()函数所在的文件则是以".c"结尾的,".c"后缀的文件内部,也就是main函数内部主要是调用各个功能函数,函数的声明部分一般放在在".h"后缀的头文件中,这样是为了实...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网