[comp.lang.c++] file naming convensions in C++/G++

garvey@johnny5.uucp (Joe Garvey) (06/14/91)

I'm just learning to program in C++ via G++.

It seems there are different convensions for naming programs.

GNU's libg++ has *.hP and *.ccP extensions.

There also seems to be a school of thought to follow the standard C
naming convensions. I assume this is to make tools like make(1) use C++
files without any hassle of defining new rules. B. Stroustrup's book
follows this pattern.

Could someone help me out here. I'm a little lost on how I should name files.

Could someone also describe the reasoning behind the naming convensions if
there is any.

Thanks.

-- 

Joe Garvey                   uucp: sumax!quick!johnny5!garvey
J5 Research                  internet: quick!johnny5!garvey@sumax.seattleu.edu
Bothell, Wa., 98021          AT&T: 206-481-8023

hargrove@asc.slb.com (Jim Hargrove) (06/14/91)

I don't know if our rules are the best, but here is the scheme we are
using:

Type of File            Extension

C Source                .c
C++ Source              .cc
C Headers               .h  -- These may be used in C or C++
C++ Headers             .hh -- These may not be used in C. 

Some other plans we rejected were these:
C++ Source              .C  -- Works only on systems that use case
                               sensitive file names. DOS and VMS don't.
C++ Includes            .H  -- Ditto

C++ Source              .cpp   This is OK and widely used. Takes one
                               more character, more typing.

You need to distinguish between C and C++ files so you can run the C++
compiler on the latter. Of course, you can use the C++ compiler on C
files, but this is sometimes less efficient.

You need to be able to distinguish between include files that require
C++ to make sure these aren't included into a C program.

In a sense, this is a temporary problem. When C++ becomes more
prevalent, we will probably just have a single kind of filename.
Today, though, we have tons of old software in C coexisting with new
software in C++. The scheme above lets us sort this out automatically.

-- 

        -- jwh