c语言中自定义函数安放位置问题放在后面,要先声明下原型,这样编译器在编译时,就可以知道有这个函数,会往下面查找,并编译 。
放在前面,可以直接定义 , main中使用 。
放前放后 , 纯属个人编写风格 , 并无硬性规定 。
个人喜欢放在前面,这样,看代码时,直接从下面的MAIN函数看起 , 遇到定义的函数,上翻查看 。
c语言如何定义函数函数是用户与程序的接口,在定义一个函数前,首先要清楚以下三个问题 。1) 函数的功能实现及算法选择 。算法选择会在后续文章详细讲解,本节重点关注函数的功能实现 。一般选取能体现函数功能的函数名,且见名知意,如求和函数的函数名可取为 add , 求最大值的函数名可取为 max,排序函数可取名为 sort 等 。2) 需要用户传给该函数哪些参数、什么类型,即函数参数 。3) 函数执行完后返回给调用者的参数及类型,即函数返回值类型 。函教定义格式函数定义的一般格式为:返回类型 函数名 (类型参数1,类型参数2,…){函数体}也可以不含参数,不含参数时,参数表中可写关键字 void 或省略,为规范起见,教程中对没有参数的函数 , 参数表中统一写 void 。例如:类型 函数名 (){函数体}等价于:类型 函数名 (void) //建议的书写方式{函数体}如果该函数没有返回类型,则为 void 类型 。例如:void add (int x,int y){printf ("sum=%d\n", x y);}除了 void 类型外,在函数体中,均需要显式使用 return 语句返回对应的表达式的值 。函教返回值函数的值是指调用函数结束时 , 执行函数体所得并返回给主调函数的值 。关于函数返回值说明如下 。1) 带返回值的函数,其值一般使用 return 语句返回给调用者 。其格式为:return 表达式;或者return (表达式);例如:int add (int a, int b){return (ab); //return 后为表达式}函数可以含一个或多个 return 语句,但每次调用时只能执行其中一个 return 语句 。例如,求整数绝对值的函数:int f (int n) //含多个return语句 , 但每次调用只执行一个{if (n = 0)return n;elsereturn -n;}
如何在C语言中定义一个函数?需要准备的材料分别有:电脑、C语言编译器 。
1、首先,打开C语言编译器,新建一个初始.cpp文件,例如:test.cpp 。
2、在test.cpp文件中 , 输入C语言代码:int fun(){return 1;} 。
3、编译器运行test.cpp文件,此时成功调用fun()函数输出了内容 。
怎么用C语言自定义函数有些自定义函数可能会被频繁的调用,所以写在一个C文件里是不太方便的 。应该把这些自定义的函数写在一个C文件里,同时在一个头文件.h文件里声明 。主函数可以通过引用该头文件然后调用需要的自定义函数 。
举例如下:
1. 在头文件(.h)里声明自定义函数,定义用户写的函数;
2.在一个C语言文件里写下自定义函数的实现方式 , 可以写在主函数前,也可在主函数后(需在头文件前声明函数);
3. 在主函数中调用自定义函数,别忘了头文件的声明;
4. 最后编译所有的涉及到的C文件;
#include stdio.h
void number(int);
int main()
{
for(int i = 0;i10;i)
{
number(i);
函数声明与函数定义分别在程序中的什么位置?为什么?函数,是编程语言中可以独立运行的一个代码块 。
在C语言中,程序从main()函数开始运行,其他函数要被main函数调用才可以运行 。
在从shell解释器运行编译好的可执行程序时 , main函数会被shell启动,开始运行 。
C语言的函数在使用时要经过3个步骤:声明、定义、调用 。
函数声明,就是给出函数的原型,让程序员知道怎么给函数传参数,怎么接收返回值,让编译器知道怎么进行代码的类型检查 。main函数的声明是这样的:
int main();
它的返回值是int类型,不需要传参数 。
printf()函数的声明是这样的:int printf(const char* fmt, ...);
它的返回值是int类型,第一个参数是格式字符串,之后可以跟可变参数 。
函数声明的语法是:
返回值类型 函数名(形参类型0 形参变量0, 形参类型1 形参变量1);
如果有多个形参,就以逗号隔开 。每个形参都有类型和变量名,其中形参变量名在声明时可以省略 。最后以分号结尾 , 结束声明语句 。
如果不想让人看到函数的源码,就可以只提供一个声明和一个编译后的文件,这样别人就只能看汇编码了(笑) 。C语言的这个设计 , 对保护知识产权还是有利的 。
函数定义,就是在声明之后不跟分号,而是以大括号表示函数体,把函数的具体代码写在大括号内部 。
上图中的main()函数就是定义,printf()函数是声明 。
定义,实现的是函数的内容 。函数是不能多次定义的,否则编译器不知道采用哪个定义的代码 。
但函数可以多次声明,只要声明都是一样的,不互相矛盾 。
只要打了两个大括号{},就算定义了函数 。空实现也是实现,可以先占住这个位置,以后再填写具体的函数代码 。即,先给出整个程序的框架来,然后再填写细节 。
在实现了函数之后 , 必须去调用它,它才会运行 。
除了main函数是被shell启动的,其他函数都要直接或间接被main函数调用 。
某一个函数在运行时 , 实际是存在一条从main函数到它的调用链的 。
函数调用的语法是:
函数名(实参变量0, 实参变量1);
如果有多个实参,则以逗号隔开 。如果要接收函数调用的返回值,可以用一个变量去接收:
返回值变量 = 函数名(实参变量0, 实参变量1);
返回值变量的类型,要与函数的返回值类型一致 , (返回值变量)在使用之前要先声明 。
对于有返回值的函数,也可以不接收它的返回值 。例如,printf()虽然有个int类型的返回值,用于表示打印了多少个字符,但一般不接收它 。
所以C语言的入门代码都是printf("hello world\n");
而不是int ret = printf("hello world\n");
函数名,在C语言中属于标志符(identity) 。
标志符的命名规则是,以下划线或大小写字母开始 , 之后可以跟数字、字母、下划线,(但不能跟运算符或其他特殊符号) 。
它们在代码中用于表示变量名、结构体类型名、函数名,或者给goto使用的标号 。
基本类型的类型名,都被定义为了关键字,不能再用作标志符 。
struct S {
int a;
int b;
} s;
S是标志符,表示结构体类型S 。
a是标志符,表示结构体的成员变量a 。
s是标志符,表示变量s,它的类型是结构体类型S 。
函数名,也属于标志符,所以函数名也要以下划线或大小写字母开始,不能是关键字、运算符、或其他特殊符号 。
0123 , 这不能做函数名,C语言的以0开始的数字是八进制数字 。
0x123,也不能做函数名 , 以0x开始的数字是16进制的数字 。
main,可以做函数名,这是主函数,在整个程序里只能有一个 , 不能作为普通函数的名字 。
__schedule,以下划线开始,可以做函数名 。
不过,以两个下划线开始的函数 , 大多是Linux系统或C库的函数 。普通函数最好别这么命名 。
char,这不能做函数名 , 它是字符类型的关键字 。
,这也不能,它是表示加法的运算符 。
CreateWindowEx,这可以做函数名 , 一看就是典型的匈牙利风格,微软的代码(笑) 。这个函数是windows系统上创建窗口的API 。
匈牙利风格的代码 , 是从微软开始流行的一种风格 , 函数名以一个或多个英文单词命名,每个单词的首字母大写,其他字母小写 。
不过Linux的代码(包括第三方的软件),还是保持上古C代码的那种下划线风格,全部字母小写,单词之间以下划线分割,而且多使用缩写 。
有时候,缩写之后只剩下几个字母,就直接新组一个词当函数名了 。
例如,Linux上启动新程序的函数execve(),就是个缩写的单词 。
执行的英文单词叫execute,windows上的可执行程序叫exe文件,就是这个词的前3个字母,Linux也选了这三个字母 。
cve这三个字母,来自完整的main函数的参数列表:
int main(int argc, char* argv[], char* envp);
main函数的完整声明是上面这个样子的,int main()这个是简化版的 。
其中第一个参数argc,表示要传给main函数的参数个数 。通过命令行参数的形式传递 。arg是参数argument的缩写 , c就是count,即参数个数 。
argv,是(传给main函数的)参数字符串的数组,v指的是vector 。
envp,是环境变量的路径,environment path 。
所以,启动main的系统调用就叫作execve()了,而不叫StartProgram() 。
虽然后者明显容易理解,但它字母多啊 , 系统调用的API哪能让人一眼就看出来是启动进程的呢(汗) 。
回到开头,main()函数在Linux上就是被execve()这个API启动的,然后其他函数要被main函数直接或间接调用 。
不被main函数(直接或间接)调用的函数 , 并不会运行 。
上图的代码只会打印add,因为main只调用了add()函数,没有调用sub()函数 。
这段简单的代码,只有这三个函数,sub()没有被调用 。
【c语言中定义函数写在哪里 c语言定义函数用什么】关于c语言中定义函数写在哪里和c语言定义函数用什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- 猴子虚拟主机下载,猴子单机
- 如何推广军山湖大闸蟹,南昌军山湖大闸蟹
- 如何用线条做ppt,ppt制作线条动画教程
- u盘加密为什么只显示几g,u盘加密一半不想加密了怎么办
- mysql慢查询怎么排查 mysql57查询慢
- 视频号简介应该怎么写,视频号的简介大家都怎么写
- 配音养成游戏,配音好听的游戏
- python经纬度转换xy坐标程序,python通过经纬度画地图
- c语言的库函数 c语言四种数据类型