C语言项目中头文件跟.c文件的组织

C语言项目中头文件和.c文件的组织
最近小弟我在做一个小型的项目,在VC6.0的WIN32控制台下用C语言实现。
现在项目越做越大了,我的文件组织方式如下:
一个.c文件里面只放一个功能函数,而且函数名和文件名相同;
把所有的 头文件包含,宏定义,函数原型声明 全部放在一个public.h头文件里,该头文件大致如下:

#ifndef _PUBLIC_H
#define _PUBLIC_H
.................//系统用到的各头文件,宏定义,函数原型声明
#endif

然后在所有的.c文件的开头都有#include "public.h"

请问有在谁在公司里开发过C语言项目吗?我这样的文件组织方式对吗?因为有人告诉我说要把所有的函数都放在一个
.c文件,但我觉得这样后期的可维护性不就降低了吗?
期待大虾们帮我解决这个问题!小弟我在此先谢了!!



------解决方案--------------------
支持用头文件
头文件的作用:
1.避免函数声明的重复;
2.增强编译器对原型的检查.
3.不想让人知道内部的实现,把实现做成库文件,在头文件中提供接口的声明
....
------解决方案--------------------
可以这么用的。呵呵!~

up楼上
------解决方案--------------------
你的方法很对,在一个.c文件里最好只放一个功能函数(你说的不是一个函数吧,肯定不是一个函数,而是有相近作用的函数),对应的要写一个.h文件,在里面对.c文件里的函数进行声明,这两个文件的文件名最好使用功能名称。在其他.c文件里面调用到该.c文件函数时,只要包含include"*.h"就over了。
------解决方案--------------------
一个.c文件里面只放一个功能函数,而且函数名和文件名相同;

如果有一万个函数,难道你要创建一万个文件???
没有你这么干的..

要分模块!!!
一个模块一个.c文件.

模块是一组功能有关系的函数的组合,
至于怎么分模块,这东西就复杂. 但也可以简单..
没办法几句话给你说清楚...
自己查资料吧
------解决方案--------------------
"有人告诉我说要把所有的函数都放在一个 .c文件"这个人该杀啊 呵呵

不能这样的 这样子可读性都降低了不说,以后改个代码都很难 

按照你的方法是可以的  因为你有加头文件卫士 头文件只被编译一次  没问题的!
------解决方案--------------------

"一个.c文件里面只放一个功能函数,而且函数名和文件名相同"???

打个比方:假如你写一个取得机器IP地址和子网掩码的功能的函数,当然与此相关的还有很多,比如:取得MAC,DNS,......
你一个函数放一个文件里吗?关于这些类似的操作,写在一个文件里就行了,其实这也就是所谓的"模块化",面向对象
可理解为类!!!考虑一下C++中标准中的类的实现(.cpp).



------解决方案--------------------
探讨
一个.c文件里面只放一个功能函数,而且函数名和文件名相同;

如果有一万个函数,难道你要创建一万个文件???
没有你这么干的..

要分模块!!!
一个模块一个.c文件.

模块是一组功能有关系的函数的组合,
至于怎么分模块,这东西就复杂. 但也可以简单..
没办法几句话给你说清楚...
自己查资料吧

------解决方案--------------------
C++ primer 详细讲了头文件和源文件的使用,当然它讲的包含类。但,你可以只看关于C的。
------解决方案--------------------
一个模块一个.c吧.模块大的话就要在细化下.至于头文件的处理lz 是对的