473,387 Members | 1,453 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

.h files

Ok I have a doubt regarding .h files. I basically have two modules in
my software program -

a.c and b.c

There is .h file called d.h. d.h contains prototypes of functions in
a.c so whenever i have to use functions of a.c i simply need to
include d.h. My question is can i also add the prototypes of functions
in b.c in d.h so that i only need to d.h in main.c so as to access
functions of both a.c and b.c.
Feb 21 '08 #1
5 1819
On Wed, 20 Feb 2008 21:01:56 -0800 (PST), johnnash
<jo********@gmail.comwrote:
>Ok I have a doubt regarding .h files. I basically have two modules in
my software program -

a.c and b.c

There is .h file called d.h. d.h contains prototypes of functions in
a.c so whenever i have to use functions of a.c i simply need to
include d.h. My question is can i also add the prototypes of functions
in b.c in d.h so that i only need to d.h in main.c so as to access
functions of both a.c and b.c.
Yes. Doing so will also provide the additional benefit that the
compiler can verify the function prototype and function definition
match.
Remove del for email
Feb 21 '08 #2

"johnnash" <jo********@gmail.comwrote in message
news:63**********************************@h25g2000 hsf.googlegroups.com...
Ok I have a doubt regarding .h files. I basically have two modules in
my software program -

a.c and b.c

There is .h file called d.h. d.h contains prototypes of functions in
a.c so whenever i have to use functions of a.c i simply need to
include d.h. My question is can i also add the prototypes of functions
in b.c in d.h so that i only need to d.h in main.c so as to access
functions of both a.c and b.c.
You can, but it is best to put prototypes in a .h file named after the .c
file in which they are defined.

So you have a.c, a.h, b.c, b.h, and maybe AAA.h containing structures common
to both a.c and b.c.

Now define all.h

#include "AAA.h"
#include "a.h"
#include "b.h"

if you just want to include just one header in your main.c file.

--
Free games and programming goodies.
http://www.personal.leeds.ac.uk/~bgy1mm
Feb 21 '08 #3
johnnash wrote:
>
Ok I have a doubt regarding .h files. I basically have two modules
in my software program - a.c and b.c

There is .h file called d.h. d.h contains prototypes of functions
in a.c so whenever i have to use functions of a.c i simply need to
include d.h. My question is can i also add the prototypes of
functions in b.c in d.h so that i only need to d.h in main.c so as
to access functions of both a.c and b.c.
No. You should match header files with source files, so each
expresses the external access permitted to the content of that
source file. You should have a.h an b.h, and #include the h files
for the units you use.

--
[mail]: Chuck F (cbfalconer at maineline dot net)
[page]: <http://cbfalconer.home.att.net>
Try the download section.

--
Posted via a free Usenet account from http://www.teranews.com

Feb 21 '08 #4
CBFalconer wrote:
>
johnnash wrote:

Ok I have a doubt regarding .h files. I basically have two modules
in my software program - a.c and b.c

There is .h file called d.h. d.h contains prototypes of functions
in a.c so whenever i have to use functions of a.c i simply need to
include d.h. My question is can i also add the prototypes of
functions in b.c in d.h so that i only need to d.h in main.c so as
to access functions of both a.c and b.c.

No. You should match header files with source files, so each
expresses the external access permitted to the content of that
source file. You should have a.h an b.h, and #include the h files
for the units you use.
I disagree here, to a point. If a.c and b.c are related, perhaps as
part of a library, then a single .h file should be used. Consider,
for example, the stdlib.h header file, which contains prototypes of
many functions. I would like to think (and I happen to know for a
fact, on the systems I've checked) that these functions are actually
defined in separate source modules.

Now, if the only relationship a.c and b.c have is that they happen
to both be part of this program that's being written, then it makes
sense to have separate a.h and b.h files, and perhaps a wrapper file
for the project that #include's both.

--
+-------------------------+--------------------+-----------------------+
| Kenneth J. Brody | www.hvcomputer.com | #include |
| kenbrody/at\spamcop.net | www.fptech.com | <std_disclaimer.h|
+-------------------------+--------------------+-----------------------+
Don't e-mail me at: <mailto:Th*************@gmail.com>
Feb 22 '08 #5
Kenneth Brody wrote:
CBFalconer wrote:
>johnnash wrote:
>>Ok I have a doubt regarding .h files. I basically have two modules
in my software program - a.c and b.c

There is .h file called d.h. d.h contains prototypes of functions
in a.c so whenever i have to use functions of a.c i simply need to
include d.h. My question is can i also add the prototypes of
functions in b.c in d.h so that i only need to d.h in main.c so as
to access functions of both a.c and b.c.

No. You should match header files with source files, so each
expresses the external access permitted to the content of that
source file. You should have a.h an b.h, and #include the h files
for the units you use.

I disagree here, to a point. If a.c and b.c are related, perhaps as
part of a library, then a single .h file should be used. Consider,
for example, the stdlib.h header file, which contains prototypes of
many functions. I would like to think (and I happen to know for a
fact, on the systems I've checked) that these functions are actually
defined in separate source modules.

Now, if the only relationship a.c and b.c have is that they happen
to both be part of this program that's being written, then it makes
sense to have separate a.h and b.h files, and perhaps a wrapper file
for the project that #include's both.
If you want this I suggest you get it by: Create a.h and b.h. Now
create all.h, which has the lines:

#include "a.h"
#include "b.h"

possibly accompanied by various guards. Now you have full future
flexibility.

--
[mail]: Chuck F (cbfalconer at maineline dot net)
[page]: <http://cbfalconer.home.att.net>
Try the download section.

--
Posted via a free Usenet account from http://www.teranews.com

Feb 23 '08 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Mike | last post by:
I am sure that I am making a simple boneheaded mistake and I would appreciate your help in spotting in. I have just installed apache_2.0.53-win32-x86-no_ssl.exe php-5.0.3-Win32.zip...
44
by: Xah Lee | last post by:
here's a large exercise that uses what we built before. suppose you have tens of thousands of files in various directories. Some of these files are identical, but you don't know which ones are...
0
by: Tom Lee | last post by:
Hi, I'm new to .NET 2003 compiler. When I tried to compile my program using DEBUG mode, I got the following errors in the C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7 \include\xdebug...
18
by: JKop | last post by:
Here's what I know so far: You have a C++ project. You have source files in it. When you go to compile it, first thing the preprocessor sticks the header files into each source file. So now...
3
by: pooja | last post by:
Suppose i have created a class c1 with f1()in c1.cpp and included this c1.cpp in file1.cpp file , which is also having main() by giving the statement #include "c1.cpp". the same i can do by...
11
by: ambika | last post by:
Iam just trying to know "c". And I have a small doubt about these header files. The header files just contain the declaration part...Where is the definition for these declarations written??And how...
22
by: Daniel Billingsley | last post by:
Ok, I wanted to ask this separate from nospam's ridiculous thread in hopes it could get some honest attention. VB6 had a some simple and fast mechanisms for retrieving values from basic text...
18
by: UJ | last post by:
Folks, We provide custom content for our customers. Currently we put the files on our server and people have a program we provide that will download the files. These files are usually SWF, HTML or...
0
by: wal | last post by:
How does one attach files to emails using libgmail? The following code http://pramode.net/articles/lfy/fuse/4.txt works fine when said files are simple text files, but it failes as soon as the...
3
by: aRTx | last post by:
I have try a couple of time but does not work for me My files everytime are sortet by NAME. I want to Sort my files by Date-desc. Can anyone help me to do it? The Script <? /* ORIGJINALI
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.