文件管理 · 2023年8月1日

头文件里有函数么|C语言怎样才能在头文件中实现函数定义

① 请问C语言怎么把函数放在头文件里面呢

你可以创建头文件,头文件是以".h"结尾的文件名,而main()函数所在的文件则是回以".c"结尾的,".c"后缀的答文件内部,也就是main函数内部主要是调用各个功能函数,函数的声明部分一般放在在".h"后缀的头文件中,这样是为了实现C语言的结构化,创建好了头文件,就可以在头文件内部实现各个函数的声明,具体的一个完整的函数声明可以用下面的加法函数例子来说明 ://include<add.h>,头文件名为add的头文件float add(float x,float y) /*定义add函数*/{ float z; z=x+y; return(z);}这个函数的返回值是float(浮点型或是实型),add为函数名,调用的形参都是float类型,数目为两个形参x,y。x,y是接受main()函数中的实参传过来的具体值,然后进行运算。main函数调用只要这样就可以:#include<stdio.h>#include<add.h>main(){ float c; c=add(4.6,5.4); printf("x+y=%d",c);}

② c 调用另一个函数 函数能放在头文件中吗

一般来说有三个文件,在主函数里面只调用了自定义的头文件

1,主函数,main

#include"Test.h"//自定义头文件intmain(){}

2,函数

#include"Test.h"//自定义头文件intfunction1()//自定义函数{}

3,头文件 命名为 Test保存为.h

#include<stdio.h>//系统头文件#include<stdlib.h>intfunction1();//声明自定义的函数

③ C语言里的头文件里都有那些函数,怎么用它们

这里面的函数你可以找到这个头文件,打开后可以看到那些函数的定义。要用的话先把它导入进来,例如:#include<stdio.h>,里面的函数你只要写出函数名,根据要求赋值等等就行;

④ C语言中 常用头文件 及 头文件包含的函数 有哪些

“stdio.h”标准输入输出头文件“string.h”字符串头文件“math.h”数学库函数头文件

⑤ C语言怎样才能在头文件中实现函数定义

头文件和源文件没什么两样,可以直接定义,但是在头文件中使用定义是违背初衷的做法,是应该杜绝的

⑥ 如何在头文件中声明函数

函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口。定义函数的程序员提供函数原型,使用函数的程序员就只需要对函数原型编辑即可。比如: 【返回类型】 函数名(参数1类型 参数1,参数2类型 参数2,……);实例:bool swap(int a,int b); 例子中函数的返回类型为bool型,两个参数都是int型,一个名称为a ,一个名称为b函数声明中的形参名往往被忽略,如果声明中提供了形参的名字,也只是用作辅助文档。另外要注意函数声明是一个语句,后面不可漏分号!如果是自己写的函数,在声明函数的同时要对函数进行定义。假设头文件名为head.h,源文件名为main.cpp,两个文件在同一个目录下在头文件中直接加上int swap(int a,int b);这一句就可以了在源文件中还要加上include"head.h"并且加上函数的定义:bool swap(int a,int b){//swap函数用于两个数据交换 int c; c=a; a=b; b=c;}注意在头文件中声明后记得在源文件中包含这个头文件,要不然是找不到函数的定义的。

⑦ c语言中math头文件中的函数有哪些

数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有:1 三角函数double sin (double);double cos (double);double tan (double);2 反三角函数double asin (double); 结果介于[-PI/2, PI/2]double acos (double); 结果介于[0, PI]double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]3 双曲三角函数double sinh (double);double cosh (double);double tanh (double);4 指数与对数double exp (double);double sqrt (double);double log (double); 以e为底的对数double log10 (double);double pow(double x, double y)//计算以x为底数的y次幂5 取整double ceil (double); 取上整double floor (double); 取下整6 绝对值double fabs (double);double cabs(struct complex znum) //求复数的绝对值7 标准化浮点数double frexp (double f, int *p); 标准化浮点数, f = x * 2^p, 已知f求x, p ( x介于[0.5, 1] )double ldexp (double x, int p); 与frexp相反, 已知x, p求f8 取整与取余double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分double fmod (double, double); 返回两参数相除的余数9其他double hypot(double x, double y);//已知直角三角形两个直角边长度,求斜边长度double ldexp(double x, int exponent);//计算x*(2的exponent次幂)double poly(double x, int degree, double coeffs [] )//计算多项式nt matherr(struct exception *e)//数学错误计算处理程序source: 《C & C++ Code Capsules》

⑧ 一个类的成员函数的定义 可以放在头文件中吗

可以这样,但是不推荐。因为头文件中一般制包括声明,而不是定义。如果定义的话,代码较多,多次包含该头文件后可能导致程序体积变大

⑨ C/C++ 头文件中各包含哪些函数

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头文件大全分类函数,所在函数库为ctype.hint isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9') 返回非0值,否则返回0int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')数学函数,所在函数库为math.h、stdlib.h、string.h、float.hint abs(int i) 返回整型参数i的绝对值double cabs(struct complex znum) 返回复数znum的绝对值double fabs(double x) 返回双精度参数x的绝对值long labs(long n) 返回长整型参数n的绝对值double exp(double x) 返回指数函数ex的值double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值double log(double x) 返回logex的值double log10(double x) 返回log10x的值double pow(double x,double y) 返回xy的值double pow10(int p) 返回10p的值double sqrt(double x) 返回+√x的值double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度double atan(double x) 返回x的反正切tan-1(x)值,x为弧度double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度double sin(double x) 返回x的正弦sin(x)值,x为弧度double tan(double x) 返回x的正切tan(x)值,x为弧度double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度double tanh(double x) 返回x的双曲正切tanh(x)值,x为弧度double hypot(double x,double y) 返回直角三角形斜边的长度(z), x和y为直角边的长度,z2=x2+y2double ceil(double x) 返回不小于x的最小整数double floor(double x) 返回不大于x的最大整数void srand(unsigned seed) 初始化随机数发生器int rand() 产生一个随机数并返回这个数double poly(double x,int n,double c[])从参数产生一个多项式double modf(double value,double *iptr)将双精度数value分解成尾数和阶double fmod(double x,double y) 返回x/y的余数double frexp(double value,int *eptr) 将双精度数value分成尾数和阶double atof(char *nptr) 将字符串nptr转换成浮点数并返回这个浮点数double atoi(char *nptr) 将字符串nptr转换成整数并返回这个整数double atol(char *nptr) 将字符串nptr转换成长整数并返回这个整数char *ecvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串char *fcvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串char *gcvt(double value,int ndigit,char *buf) 将数value转换成字符串并存于buf中,并返回buf的指针char *ultoa(unsigned long value,char *string,int radix) 将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *ltoa(long value,char *string,int radix) 将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *itoa(int value,char *string,int radix) 将整数value转换成字符串存入string,radix为转换时所用基数double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0long atol(char *nptr) 将字符串nptr转换成长整型数,并返回这个数,错误返回0double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数,long strtol(char *str,char **endptr,int base)将字符串str转换成长整型数, 并返回这个数,int matherr(struct exception *e) 用户修改数学错误返回信息函数(没有必要使用)double _matherr(_mexcep why,char *fun,double *arg1p, double *arg2p,double retval) 用户修改数学错误返回信息函数(没有必要使用)unsigned int _clear87() 清除浮点状态字并返回原来的浮点状态void _fpreset() 重新初使化浮点数学程序包unsigned int _status87() 返回浮点状态字目录函数,所在函数库为dir.h、dos.hint chdir(char *path) 使指定的目录path(如:"C:\\WPS")变成当前的工作目录,成 功返回0int findfirst(char *pathname,struct ffblk *ffblk,int attrib)查找指定的文件,成功 返回0 pathname为指定的目录名和文件名,如"C:\\WPS\\TXT" ffblk为指定的保存文件信息的一个结构,定义如下: ┏━━━━━━━━━━━━━━━━━━┓ ┃struct ffblk ┃ ┃{ ┃ ┃ char ff_reserved[21]; /*DOS保留字*/┃ ┃ char ff_attrib; /*文件属性*/ ┃ ┃ int ff_ftime; /*文件时间*/ ┃ ┃ int ff_fdate; /*文件日期*/ ┃ ┃ long ff_fsize; /*文件长度*/ ┃ ┃ char ff_name[13]; /*文件名*/ ┃ ┃} ┃ ┗━━━━━━━━━━━━━━━━━━┛ attrib为文件属性,由以下字符代表 ┏━━━━━━━━━┳━━━━━━━━┓ ┃FA_RDONLY 只读文件┃FA_LABEL 卷标号┃ ┃FA_HIDDEN 隐藏文件┃FA_DIREC 目录 ┃ ┃FA_SYSTEM 系统文件┃FA_ARCH 档案 ┃ ┗━━━━━━━━━┻━━━━━━━━┛ 例: struct ffblk ff; findfirst("*.wps",&ff,FA_RDONLY);int findnext(struct ffblk *ffblk) 取匹配finddirst的文件,成功返回0void fumerge(char *path,char *drive,char *dir,char *name,char *ext) 此函数通过盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等), 文件名name(TC、WPS等),扩展名ext(.EXE、.COM等)组成一个文件名 存与path中.int fnsplit(char *path,char *drive,char *dir,char *name,char *ext) 此函数将文件名path分解成盘符drive(C:、A:等),路径dir(\TC、\BC\LIB等), 文件名name(TC、WPS等),扩展名ext(.EXE、.COM等),并分别存入相应的变量中.int getcurdir(int drive,char *direc) 此函数返回指定驱动器的当前工作目录名称 drive 指定的驱动器(0=当前,1=A,2=B,3=C等) direc 保存指定驱动器当前工作路径的变量 成功返回0char *getcwd(char *buf,iint n) 此函数取当前工作目录并存入buf中,直到n个字 节长为为止.错误返回NULLint getdisk() 取当前正在使用的驱动器,返回一个整数(0=A,1=B,2=C等)int setdisk(int drive) 设置要使用的驱动器drive(0=A,1=B,2=C等), 返回可使用驱动器总数int mkdir(char *pathname) 建立一个新的目录pathname,成功返回0int rmdir(char *pathname) 删除一个目录pathname,成功返回0char *mktemp(char *template) 构造一个当前目录上没有的文件名并存于template中char *searchpath(char *pathname) 利用MSDOS找出文件filename所在路径, ,此函数使用DOS的PATH变量,未找到文件返回NULL进程函数,所在函数库为stdlib.h、process.hvoid abort() 此函数通过调用具有出口代码3的_exit写一个终止信息于stderr, 并异常终止程序。无返回值int exec…装入和运行其它程序int execl( char *pathname,char *arg0,char *arg1,…,char *argn,NULL)int execle( char *pathname,char *arg0,char *arg1,…, char *argn,NULL,char *envp[])int execlp( char *pathname,char *arg0,char *arg1,…,NULL)int execlpe(char *pathname,char *arg0,char *arg1,…,NULL,char *envp[])int execv( char *pathname,char *argv[])int execve( char *pathname,char *argv[],char *envp[])int execvp( char *pathname,char *argv[])int execvpe(char *pathname,char *argv[],char *envp[]) exec函数族装入并运行程序pathname,并将参数 arg0(arg1,arg2,argv[],envp[])传递给子程序,出错返回-1 在exec函数族中,后缀l、v、p、e添加到exec后, 所指定的函数将具有某种操作能力 有后缀 p时,函数可以利用DOS的PATH变量查找子程序文件。 l时,函数中被传递的参数个数固定。 v时,函数中被传递的参数个数不固定。 e时,函数传递指定参数envp,允许改变子进程的环境, 无后缀e时,子进程使用当前程序的环境。void _exit(int status)终止当前程序,但不清理现场void exit(int status) 终止当前程序,关闭所有文件,写缓冲区的输出(等待输出), 并调用任何寄存器的"出口函数",无返回值int spawn…运行子程序int spawnl( int mode,char *pathname,char *arg0,char *arg1,…, char *argn,NULL)int spawnle( int mode,char *pathname,char *arg0,char *arg1,…, char *argn,NULL,char *envp[])int spawnlp( int mode,char *pathname,char *arg0,char *arg1,…, char *argn,NULL)int spawnlpe(int mode,char *pathname,char *arg0,char *arg1,…, char *argn,NULL,char *envp[])int spawnv( int mode,char *pathname,char *argv[])int spawnve( int mode,char *pathname,char *argv[],char *envp[])int spawnvp( int mode,char *pathname,char *argv[])int spawnvpe(int mode,char *pathname,char *argv[],char *envp[]) spawn函数族在mode模式下运行子程序pathname,并将参数 arg0(arg1,arg2,argv[],envp[])传递给子程序.出错返回-1 mode为运行模式 mode为 P_WAIT 表示在子程序运行完后返回本程序 P_NOWAIT 表示在子程序运行时同时运行本程序(不可用) P_OVERLAY表示在本程序退出后运行子程序 在spawn函数族中,后缀l、v、p、e添加到spawn后, 所指定的函数将具有某种操作能力 有后缀 p时, 函数利用DOS的PATH查找子程序文件 l时, 函数传递的参数个数固定. v时, 函数传递的参数个数不固定. e时, 指定参数envp可以传递给子程序,允许改变子程序运行环境. 当无后缀e时,子程序使用本程序的环境.int system(char *command) 将MSDOS命令command传递给DOS执行转换子程序,函数库为math.h、stdlib.h、ctype.h、float.hchar *ecvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串char *fcvt(double value,int ndigit,int *decpt,int *sign) 将浮点数value转换成字符串并返回该字符串char *gcvt(double value,int ndigit,char *buf) 将数value转换成字符串并存于buf中,并返回buf的指针char *ultoa(unsigned long value,char *string,int radix) 将无符号整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *ltoa(long value,char *string,int radix) 将长整型数value转换成字符串并返回该字符串,radix为转换时所用基数char *itoa(int value,char *string,int radix) 将整数value转换成字符串存入string,radix为转换时所用基数double atof(char *nptr) 将字符串nptr转换成双精度数,并返回这个数,错误返回0int atoi(char *nptr) 将字符串nptr转换成整型数, 并返回这个数,错误返回0long atol(char *nptr) 将字符串nptr转换成长整型数,并返回这个数,错误返回0double strtod(char *str,char **endptr)将字符串str转换成双精度数,并返回这个数,long strtol(char *str,char **endptr,int base)将字符串str转换成长整型数, 并返回这个数,int toascii(int c) 返回c相应的ASCIIint tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z')int _tolower(int ch) 返回ch相应的小写字母('a'-'z')int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z')int _toupper(int ch) 返回ch相应的大写字母('A'-'Z')诊断函数,所在函数库为assert.h、math.hvoid assert(int test) 一个扩展成if语句那样的宏,如果test测试失败, 就显示一个信息并异常终止程序,无返回值void perror(char *string) 本函数将显示最近一次的错误信息,格式如下: 字符串string:错误信息char *strerror(char *str) 本函数返回最近一次的错误信息,格式如下: 字符串str:错误信息int matherr(struct exception *e) 用户修改数学错误返回信息函数(没有必要使用)double _matherr(_mexcep why,char *fun,double *arg1p, double *arg2p,double retval) 用户修改数学错误返回信息函数(没有必要使用)输入输出子程序,函数库为io.h、conio.h、stat.h、dos.h、stdio.h、signal.hint kbhit() 本函数返回最近所敲的按键int fgetchar() 从控制台(键盘)读一个字符,显示在屏幕上int getch() 从控制台(键盘)读一个字符,不显示在屏幕上int putch() 向控制台(键盘)写一个字符int getchar() 从控制台(键盘)读一个字符,显示在屏幕上int putchar() 向控制台(键盘)写一个字符int getche() 从控制台(键盘)读一个字符,显示在屏幕上int ungetch(int c) 把字符c退回给控制台(键盘)char *cgets(char *string) 从控制台(键盘)读入字符串存于string中int scanf(char *format[,argument…])从控制台读入一个字符串,分别对各个参数进行 赋值,使用BIOS进行输出int vscanf(char *format,Valist param)从控制台读入一个字符串,分别对各个参数进行 赋值,使用BIOS进行输出,参数从Valist param中取得int cscanf(char *format[,argument…])从控制台读入一个字符串,分别对各个参数进行 赋值,直接对控制台作操作,比如显示器在显示时字符时即为直接写频方式显示int sscanf(char *string,char *format[,argument,…])通过字符串string,分别对各个 参数进行赋值int vsscanf(char *string,char *format,Vlist param)通过字符串string,分别对各个 参数进行赋值,参数从Vlist param中取得int puts(char *string) 发关一个字符串string给控制台(显示器), 使用BIOS进行输出void cputs(char *string) 发送一个字符串string给控制台(显示器), 直接对控制台作操作,比如显示器即为直接写频方式显示int printf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器) 使用BIOS进行输出int vprintf(char *format,Valist param) 发送格式化字符串输出给控制台(显示器) 使用BIOS进行输出,参数从Valist param中取得int cprintf(char *format[,argument,…]) 发送格式化字符串输出给控制台(显示器), 直接对控制台作操作,比如显示器即为直接写频方式显示int vcprintf(char *format,Valist param)发送格式化字符串输出给控制台(显示器), 直接对控制台作操作,比如显示器即为直接写频方式显示, 参数从Valist param中取得int sprintf(char *string,char *format[,argument,…]) 将字符串string的内容重新写为格式化后的字符串int vsprintf(char *string,char *format,Valist param) 将字符串string的内容重新写为格式化后的字符串,参数从Valist param中取得int rename(char *oldname,char *newname)将文件oldname的名称改为newnameint ioctl(int handle,int cmd[,int *argdx,int argcx])还有很多 ,由于字数上限了,就发这么多吧!