C语言中数学函数的文件头 c语言常用函数及其头文件

C语言中函数的头文件名共有多少个?分别是哪些?

C/C++头文件一览

成都创新互联公司长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为公主岭企业提供专业的成都网站设计、网站制作公主岭网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

C、传统 C++

#include assert.h //设定插入点

#include ctype.h //字符处理

#include errno.h //定义错误码

#include float.h //浮点数处理

#include fstream.h //文件输入/输出

#include iomanip.h //参数化输入/输出

#include iostream.h //数据流输入/输出

#include limits.h //定义各种数据类型最值常量

#include locale.h //定义本地化函数

#include math.h //定义数学函数

#include stdio.h //定义输入/输出函数

#include stdlib.h //定义杂项函数及内存分配函数

#include string.h //字符串处理

#include strstrea.h //基于数组的输入/输出

#include time.h //定义关于时间的函数

#include wchar.h //宽字符处理及输入/输出

#include wctype.h //宽字符分类

//////////////////////////////////////////////////////////////////////////

标准 C++ (同上的不再注释)

#include algorithm //STL 通用算法

#include bitset //STL 位集容器

#include cctype

#include cerrno

#include clocale

#include cmath

#include complex //复数类

#include cstdio

#include cstdlib

#include cstring

#include ctime

#include deque //STL 双端队列容器

#include exception //异常处理类

#include fstream

#include functional //STL 定义运算函数(代替运算符)

#include limits

#include list //STL 线性列表容器

#include map //STL 映射容器

#include iomanip

#include ios //基本输入/输出支持

#include iosfwd //输入/输出系统使用的前置声明

#include iostream

#include istream //基本输入流

#include ostream //基本输出流

#include queue //STL 队列容器

#include set //STL 集合容器

#include sstream //基于字符串的流

#include stack //STL 堆栈容器

#include stdexcept //标准异常类

#include streambuf //底层输入/输出支持

#include string //字符串类

#include utility //STL 通用模板类

#include vector //STL 动态数组容器

#include cwchar

#include cwctype

using namespace std;

//////////////////////////////////////////////////////////////////////////

C99 增加

#include complex.h //复数处理

#include fenv.h //浮点环境

#include inttypes.h //整数格式转换

#include stdbool.h //布尔环境

#include stdint.h //整型环境

#include tgmath.h //通用类型数学宏

c语言的函数头

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

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

全文如下:

一)、定义格式

类型名 函数名 ([参数表]) 函数体

类型名为系统或用户已定义的一种数据类型,它是函数执行过程中通过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;

}

C语言中的头文件有多少种都有哪些?C函数库有哪些?

iv_t和lldiv_t;宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等;

常见的函数有malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等。具体内容可以在编译器的包含目录stdlib.h头文件中打开查看。

为了方便用户编写程序,C语言为用户开发了大量的库函数,定义在。H文件,用户可以调用这些函数来实现强大的功能。因此,对于用户来说,这些函数的使用是提高编程水平的关键。

扩展资料:

以下内容适用于头文件

1.对于具有外部存储类型的标识符,可以在任何其他源程序文件中声明后引用它们,这样用户就可以完全将具有外部存储类型的标识符的一些声明放在头文件中。

2.具体来说,头文件可以包括用户构造的数据类型(例如枚举类型)、外部变量、外部函数、常量和具有一定通用性或公共量的内联函数。一般的变量和函数定义不应该放在头文件中。

其他:

双假设(双x,双y);//给定一个直角三角形的两条边的长度,求斜边的长度。

双ldexp(双x,int指数);//计算x*(2的指数次方)。

双poly(Doublex,intdegree,Doublecoeffs[])//计算多项式。

Ntmatherr(structexception*e)//数学错误计算处理程序。

c语言中有哪些常用的头文件?

stdio.h是c的头文件,包含了对你使用的函数的声明。

当你决定使用某个函数的时候,你去查它的帮助信息,都会看到这个函数的声明是包含在哪个头文件的,这样你就可以把它包含进来,从而使用这个函数。

具体请查阅c语言对于include的讲解,还有对于函数,变量的声明部分。 include stdio.h 是C的输入输出函数,但在C++中使用可以省略.

#include math.h 是数学函数,譬如你要用到squar()函数时就必须添加这个头文件.

#include string.h是字符窜函数.

#include stdlib.h呵呵,这个有点忘记了,好久没有用了,不好意思啊

反正这几个是常用的,其他还有很多很多,呵呵,自己可以看书后面的几页都有介绍的呢!~ #includeiostream.h:此头文件申明了所有I/O操作所需的基本服务,即支持流的输入输出操作,譬如程序中有cin ,cout

#includeiomanip.h:此头文件说明可以使用控制数据的输出格式,如设置数制、填充字符、精度、数据宽度等等,譬如使用setw()、setfill() 、setprecision()等

#include string.h是字符窜处理函数

#includeafx.h程序中要使用CString类

#include stdlib.h程序中要使用C语言系统提供的库函数gets和puts函数

回答者:雨之泪1988 - 助理 二级 2-6 08:35

stdio.h是输入输出头文件,所有有关输入输出的语句如"printf","scanf","putchar","getchar"等,都要用该头文件,头文件其实就是定义了这些函数的文件,它是系统提供给我们的接口

math.h是再进行数学运算时要包含的头文件,它提供了取绝对值,开方,求幂等数学运算

#includeconio.h与#includestdio.h 一样,是头文件包含。

这个头文件包含有许多库函数像#includestdio.h包含printf与

scanf一样,getch()也是其中一个函数,它的功能是无回显得到一

字符,常用这个函数做密码之类的程序。在TC中编译不需要加头文件

可以,编译器默认包含。就像在TC是不用加#includestdio.h一样。

但在VC中编译就要加了。否则系统认为你的函数没有定义。

其它头文件你只要再TC文件夹中看看include这个文件夹里面的文件就可以了


名称栏目:C语言中数学函数的文件头 c语言常用函数及其头文件
当前URL:http://cdiso.cn/article/hiosss.html

其他资讯