C语言中函数什么时候声明?什么时候定义?最好举例说明。

C语言中函数什么时候声明?什么时候定义?最好举例说明。,第1张

函数可以在调用函数的函数(比如main函数)之前定义,这样就无需声明了;

举例:

int add(int x,int y) { return x+y; } //在编译程序编译到main的调用add之处时,由于已经编译过add的函数了,因此编译程序已经知晓调用规则,因此可以省略声明语句

void main() { int x=5,y=6,c; c=add(x,y); printf("%d\n",c); }

如果函数在调用函数的函数之后定义,为了通知编译程序要调用函数的格式,需要在调用函数的函数前添加函数的声明。

举例:

int add(int x,int y); //函数声明也可以简单地写成int add(int,int);通知编译程序main中调用add的规则即可

void main() { int x=5,y=6,c; c=add(x,y); printf("%d\n",c); }

int add(int x,int y) { return x+y; }

1、首先,一个函数要想调用,就必须有函数的声明和定义。声明就是指在程序编译的时候告诉编译器,这是个内部函数。声明方式为:函数类型+函数名+函数参数,并且以分号结尾。

2、函数的调用就在你需要用到它的地方调就可以了,并且将参数传给它。

3、函数定义就是实现这个函数的功能。

希望对你有帮助!

函数声明是让代码调用点知道按照什么格式来调用函数。

(函数参数列表是什么,返回值是什么。)

否则调用点无法确知调用函数的格式。

(注:在C里也可以无函数声明就调用,那样会在程序链接的时候做调用匹配检查。但这非常非常不推荐这样做。

C++则完全屏蔽这种可能,如果出现未声明的调用,则直接编译报错。)

取决于你要传递的实际类型

如果你要传递一维数组或者一维指针,那么double或者double[]没有区别

参数用数组时,会自动转变成对应指针

如果是二维数组,就必须用数组形式或者数组指针形式

比如double [3][4]

可以就写double[3][4]

也可以double[][4]

也可以double()[4]

但是不能写成double

定义是分配空间并赋初值(如果有) 的声明。最好的安排是在某个相关的c 文件中定义, 然后在头文件(h) 中进行外部声明, 在需要使用的时候, 只要包含对应的头文件即可。定义变量的c 文件也应该包含该头文件, 以便编译器检查定义和声明的一致性。这条规则提供了高度的可移植性: 它和ANSI C 标准一致, 同时也兼容大多数ANSI 前的编译器和连接器。Unix 编译器和连接器通常使用“通用模式” 允许多重定义, 只要保证最多对一处进行初始化就可以了; ANSI C 标准称这种行为为“公共扩展”, 没有语带双关的意思。

可以使用预处理技巧来使类似DEFINE(int, i);的语句在一个头文件中只出现一次, 然后根据某个宏的设定在需要的时候转化成定义或声明。但不清楚这样的麻烦是否值得。如果希望让编译器检查声明的一致性, 一定要把全局声明放到头文件中。特别是, 永远不要把外部函数的原型放到c 文件中: 通常它与定义的一致性不能得到检查, 而矛盾的原型比不用还糟糕。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/12182065.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存