Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #28702

Re: what is the best way

From Ian Collins <ian-news@hotmail.com>
Newsgroups comp.lang.c
Subject Re: what is the best way
Date 2012-11-28 14:21 +1300
Message-ID <ahl79gFn8fdU4@mid.individual.net> (permalink)
References <50b4d9fc$0$3108$ba620e4c@news.skynet.be> <k931s6$jk1$1@dont-email.me> <ahkk83Fn8fdU2@mid.individual.net> <k93l11$8kp$1@dont-email.me>

Show all headers | View raw


Les Cargill wrote:
> Ian Collins wrote:
>> Les Cargill wrote:
>>>
>>> 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...

Fair enough.  I prefer more smaller C files over one bigger one, so my 
public headers tend to cover a group of files.

> 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...

Take care with your terminology there, dynamic libraries are often 
different beasts from static archives.

>> 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...

I don't see why that would be the case.  C++ happily uses system C 
libraries and there's nothing to stop you witting a library with a C 
interface entirely or partially in C++.

 > plus it's much more grep-friendly.

find is your friend!

> 'Course, if you're backing into somebody else's arrangement,
> you are better off conforming...

Yep.

-- 
Ian Collins

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


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