Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Les Cargill <lcargill99@comcast.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: what is the best way |
| Date | 2012-11-27 18:15 -0600 |
| Organization | A noiseless patient Spider |
| Message-ID | <k93l11$8kp$1@dont-email.me> (permalink) |
| References | <50b4d9fc$0$3108$ba620e4c@news.skynet.be> <k931s6$jk1$1@dont-email.me> <ahkk83Fn8fdU2@mid.individual.net> |
Ian Collins wrote: > Les Cargill wrote: >> Andre wrote: >>> to organize source in a multi soucres project. >>> Is a main.h file with every definition for every sources the best or >>> a each.h file for each.c file the best. >>> It's a verry loooong time last I used c. >>> André >> >> >> There is no "best". Still: >> >> - Have one header .h per .c file. > > That isn't necessarily a good idea. If a header declares the interface > to a module or library, the functions declared in the header are often > defined in more than one C file. > But it's easier for me to use it to publish only stuff that's in one 'C' file. I realize people do this in other ways, but I've never found a case where this didn't work out... I have published libraries with *only* the constituent headers - an example is a signals processing library I wrote which laid over fftw-3 and libsndfile. If you want the "fft" part, you include fft.h; reverse fft requires rfft.h A library is, after all, just an archive... > How to manage interface declarations and implementations really depends > on the the complexity of the application and the environment. In most > large projects I've seen or worked on there are a mix of public and > module private headers. OS libraries are a good example of this, there > will be a public header which ends up being part of the end user > distribution and private headers that never leave the private source tree. > For an O/S or compiler library, that's quite a different thing - if you're building under Unix path assumptions, then you are forced to at least have public headers. But IMO, everything in a ... non-infrastructure library should be public and on the same level. And this convention makes mixing 'C' and C++ much easier... plus it's much more grep-friendly. 'Course, if you're backing into somebody else's arrangement, you are better off conforming... >> - Have all the #includes needed for that .c file #included in the .h >> file. That way, if there are 7 c files, "grep "#include" *.c | wc " will >> be 7. > > This practice often causes more trouble than it is worth. > >> - Have this basic structure: >> >> thing.h: >> >> #ifndef _THING_H_ >> #define _THING_H_ 1 > > The 1 is unusual and superfluous. > It's cheap :) Doesn't eat much. -- Les Cargill
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
what is the best way Andre <pas.mois@ailleur.be> - 2012-11-27 16:19 +0100
Re: what is the best way Ben Bacarisse <ben.usenet@bsb.me.uk> - 2012-11-27 15:35 +0000
Re: what is the best way Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-27 08:59 -0800
Re: what is the best way James Kuyper <jameskuyper@verizon.net> - 2012-11-27 13:14 -0500
Re: what is the best way Ian Collins <ian-news@hotmail.com> - 2012-11-28 08:43 +1300
Re: what is the best way James Kuyper <jameskuyper@verizon.net> - 2012-11-27 15:02 -0500
Re: what is the best way Ian Collins <ian-news@hotmail.com> - 2012-11-28 09:29 +1300
Re: what is the best way Les Cargill <lcargill99@comcast.com> - 2012-11-27 12:48 -0600
Re: what is the best way Ian Collins <ian-news@hotmail.com> - 2012-11-28 08:56 +1300
Re: what is the best way Jorgen Grahn <grahn+nntp@snipabacken.se> - 2012-11-27 22:19 +0000
Re: what is the best way Les Cargill <lcargill99@comcast.com> - 2012-11-27 18:21 -0600
Re: what is the best way Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-28 05:08 -0800
Re: what is the best way Les Cargill <lcargill99@comcast.com> - 2012-11-28 12:43 -0600
Re: what is the best way Les Cargill <lcargill99@comcast.com> - 2012-11-27 18:15 -0600
Re: what is the best way Ian Collins <ian-news@hotmail.com> - 2012-11-28 14:21 +1300
Re: what is the best way Les Cargill <lcargill99@comcast.com> - 2012-11-27 20:06 -0600
Re: what is the best way Ian Collins <ian-news@hotmail.com> - 2012-11-28 15:21 +1300
Re: what is the best way Les Cargill <lcargill99@comcast.com> - 2012-11-27 20:31 -0600
Re: what is the best way glen herrmannsfeldt <gah@ugcs.caltech.edu> - 2012-11-28 04:00 +0000
Re: what is the best way Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-28 05:17 -0800
Re: what is the best way Ian Collins <ian-news@hotmail.com> - 2012-11-29 08:30 +1300
Re: what is the best way Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-29 05:47 -0800
Re: what is the best way Ian Collins <ian-news@hotmail.com> - 2012-11-30 07:37 +1300
Re: what is the best way Malcolm McLean <malcolm.mclean5@btinternet.com> - 2012-11-29 11:35 -0800
Re: what is the best way Keith Thompson <kst-u@mib.org> - 2012-11-27 17:25 -0800
Re: what is the best way Les Cargill <lcargill99@comcast.com> - 2012-11-27 20:15 -0600
Re: what is the best way pete <pfiland@mindspring.com> - 2012-11-27 23:48 -0500
Re: what is the best way Sergio Durigan Junior <sergiodj@riseup.net> - 2012-11-28 03:06 -0200
Re: what is the best way pete <pfiland@mindspring.com> - 2012-11-28 01:35 -0500
Re: what is the best way pete <pfiland@mindspring.com> - 2012-11-28 00:13 -0500
csiph-web