×

c语言函数定义与声明

c语言函数定义与声明(c语言函数声明)

admin admin 发表于2022-12-27 14:58:51 浏览45 评论0

抢沙发发表评论

本文目录

c语言函数声明


假设主函数main()。其他函数void fun(int a,int *b)。

关于函数定义和声明:

在代码中fun函数,有完整函数体的代码就是函数定义部分,比如void fun(int a,int *b){。。。};。

如果没有具体实现的函数体代码(也就是大括号内容),那么就是函数声明。比如void fun(int ,int *);

关于函数声明和调用:

如果fun函数定义在main代码上面。比如:

void fun(int a,int *b){。。。};

int main(){

int a=0,int b=0;

......

fun(a,&b);//这里fun定义代码在main上面,所以可以不需要声明。反之需要先写声明语句

return 0;

}

关于函数局部变量及全局变量:

简单区分:

定义在函数之外的就是全局变量,这个变量所有函数都可以直接使用,并且共用同一个地址。任意函数修改了变量值,其他函数调用也会变。

定义在函数之内的就是局部变量,局部变量只属于该函数,其他函数即使定义了同样名字的变量,这两个变量也不同地址,互不相干。

比如:

int a;//这就是全局变量,作用域下所有函数共用

int main()

{

int b;//这就是局部变量,只在本函数有效,如果想在调用fun函数时让fun也使用该变量,需要把这个变量的地址作为参数传递过去。

printf(“%d“,b);

return 0;

}

注意:c语言中允许局部变量和全局变量同名,但是同名的局部变量会屏蔽全局变量,实际代码避免同名。

关于函数传值和传址:

如函数void fun(int a,int *b){..........};这里形参a 和*b,分别表示一个值和一个地址

所以在调用该函数时,比如:

int main()

{

int c,d;

fun(c,&d);//这里调用就对应上面形参类型,第一个参数传递了c的值(传值),第二个参数传递了d的地址(传址),这里c和&d,叫做实参。当fun函数运行时改变了a和b指向地址的值,对应main函数中c的值不变,d的值改变。

return 0;

}

顺带一说:局部变量,在函数运行结束后会自动释放,所以想把局部变量地址作为返回值,需要用malloc函数申请。(这里看不懂可以暂时忽视)


C语言中,声明和定义的区别是什么


声明只是一个空壳,不会有具体的函数实现,
而定义要实现函数的实现,例如:
函数声明
int atoi(char para);
函数实现:
int atoi(char para)
{
int result;
result=para-38;
return result;
}//这里函数实现就要有实际的函数定义了

c语言中函数定义和声明有什么区别


从C语言编译器的角度来看,函数声明只是一种协议,它告诉了调用者在调用这个函数之前需要给他什么参数,一般参数是通过寄存器或者压栈的方式传给被调用函数的,具体这些参数如何使用以及返回什么值到相应的寄存器里返回给调用者则是定义所描述的。

关于C语言函数的声明,怎么理解能简单点


“函数定义”是指对函数功能的确立,包括指定函数名,函数值类型、形参类型、函数体等,它是一个完整的、独立的函数单位。

而“函数声明”的作用则是把函数的名字、函数类型以及形参类型、个数和顺序通知编译系统,以便在调用该函数时系统按此进行对照检查(例如函数名是否正确,实参与形参的类型和个数是否一致)。

在书写形式上,函数声明可以把复数头部复制过来,在后面加一个分号;而且在参数表中可以只写各个参数的类型名,而不必写参数名。

C语言不同于Java语言,在Java语言中,在一个类中,定义函数/方法后,在调用时不需要声明。在C语言中定义函数后,在使用前,需要在main函数前进行声明,否则会报错。

或者将函数定义在main函数的前面,则不需要声明

注意:在其他函数中调用自定义的函数时,也是要在调用者前进行声明,或者定义在调用者前,否则会报错无法使用

#include《stdio.h》

int getMax(int a, int b) {

if (a 》 b) {

return a;

}

else {

return b;

}

}

void main() {

int t=getMax(12, 21);

printf(“%d\n“, t);

getchar();

}

扩展资料:

关于函数的概念我们可以这样理解,函数是一个功能的集合,它可以根据输入完成特写的功能,并将结果输出。当然有时候函数只是为了实现一些特写功能而并不一定要有输入或输入。

我们想要自己编写一个函数需要编写两部分内容:声明和定义。函数的声明就是告诉编译器我们想要定义一个函数,并明确规定其返回值(输出)、函数名、参数表(输入)。声明函数的语法如下:

type function_name(type var);


c语言中一个函数的声明和定义有区别吗


有区别的,函数声明以分号结尾,函数定义后跟函数体
具体形式上可以相同,但声明也可以用省略模式,比如:
int f(int a,int b) { return a+b; }
其声明可以是:int f(int a,int b);
也可以是:int f(int,int);

C语言中函数声明和函数定义有什么区别


函数声明是通知程序,该函数是存在的
函数定义是通知程序,该函数是什么(函数的实现)
一般如果函数定义放在文件的最前面,那么可以不使用函数声明,但不规范
所以,最好是使用函数声明(也是放在文件的最前面,最好是在头文件中声明)
请采纳,谢谢

在C语言中函数定义跟函数声明有什么区别


int  fun(int a, int b);

函数定义:

int  fun(int a,int b)

{  int  c;

c=a+b;

return c;    }

声明就象是定义的头部,比较简略,函数是用来调用的,如果函数定义部写到调用的位置后面,执行到调用位置,


函数声明与函数定义的区别


声明与定义的区别:

函数的声明与函数的定义形式上十分相似,但是二者有着本质上的不同。声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。定义则需要开辟内存。

函数的定义

函数的定义是一个完整的函数单元,包含函数类型、函数名、形参及形参类型、函数体等。在程序中,函数的定义只能有一次。函数首部与花括号间不加分号。

函数的声明

函数声明只是对编译系统的一个说明:函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。不包含函数体(或形参),调用几次该函数就应在各个主调函数中做相应声明。函数声明是一个说明语句,必须以分号结束。

拓展资料:

C语言编译系统是由上往下编译的.一般被调函数放在主调函数后面的话,前面就该有声明.不然C由上往下的编译系统将无法识别。正如变量必须先声明后使用一样,函数也必须在被调用之前先声明,否则无法调用!函数的声明可以与定义分离,要注意的是一个函数只能被定义一次,但可以声明多次。

函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口。定义函数的程序员提供函数原型,使用函数的程序员就只需要对函数原型编辑即可。


C语言函数定义和说明的格式是什么


C语言的函数定义格式是:
函数返回值类型 函数名 ( 参数列表 )
{
//函数体
}
在使用函数时,要先做声明,格式如下:
函数类型 函数名称 ( 参数列表 );
特别地,在函数声明中的参数列表中,不需给出具体的变量名称,但要给出每个变量的类型。

C语言 函数定义 函数声明 区别


楼主可以这样想,C语言中,无论是常量,变量,函数,只有先定义才能使用的。在函数定义时,大脑要往一般的常量,变量定义的方向,切忌先不要想函数的别的。定义好后,把函数的定义先放一边,不管它。
接着是函数声明,大家都知道,C语言是有一个主函数main()和0或n个普通函数组成的。由于当代码越长,用到的函数就越多,为了减少函数的混淆,所以要有个函数名,就像老师点名一样,声明一个函数,就如点一个学生的名字。
总之,函数定义是系统要求的,不定义就错误,而函数声明实际上不定义也行,但为了方便和减少错误,人为规定要声明。