有关C语言中函数原型存放的位置

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:09:36
看书的时候发现这样一句话:“永远不要把外部函数的原型放到.c文件中。如果函数的定义发生改变,很容易忘记修改原型。“

我是这么理解的:外部函数的原型是放在.h文件中的,而其定义放在.c文件中,当使用.h文件中的函数时,会自动加载与.h文件中对应的.c文件中定义的函数。

照我的理解,如果原型放在.h文件中而.c文件中函数定义改变的时候,也很容易忘记修改原型啊,毕竟原型和定义不再同一个文件下。请问书上这么说到底是什么意思?还是我的理解有错?
假设:在aaa.c中给出void test(int)的定义,同时在aaa.h中声明一个函数void test(int)并且包含.c文件#include"aaa.c",现有pro.c文件调用头文件aaa.h以使用函数void test(int),
如果将原型和定义都放在aaa.h文件中,那aaa.c文件中放什么呢?
如果照285959221所说,将定义放在.c文件中,原型声明在.h文件中,那就是说在aaa.c中放定义,aaa.h中放声明,然后包含头文件aaa.h即可调用函数void test(int)。如此一来,当在aaa.c中函数定义发生改变的时候,不是也很容易忘记修改aaa.h中的函数声明吗?
关键在于(上例中),到底那个文件存放什么内容?还是说aaa.c可以不要?主要的是pro.c文件,aaa.c只是包含了一个函数而已。

为什么没有人帮忙解释一下我提出的例子呢…………

函数原型声明一般在h文件
函数定义应该在c文件中

定义只有一次,声明可以多次

把函数原型和定义都放到*.h里面去,在*.c里面调用即可

分开主要是解决 当遇到一个大的程序时 需要很多人共同完成时 将定义和申明分开 别人要调用的时候 只需要知道你函数的 参数 功能就可以了 你怎么实现的 别人不管 这样的话就可以 分工明确 实现方便了

.h 主要是放声明的函数 让你了解面象对象的思想的
.C 是调用 声明好的函数 而已

C是定义,H是声明。。

这个问题问的好