470,849 Members | 1,166 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,849 developers. It's quick & easy.

a small precompiler question

hey guys

i was wondering what's the difference between the following commands:

#ifndef
#if !defined

looks to be the same or is it ?
Jun 27 '08 #1
5 1042
arjor wrote:

[it's preprocessor, not precompiler]
hey guys

i was wondering what's the difference between the following commands:

#ifndef
#if !defined

looks to be the same or is it ?
They are synonymous.

--
Ian Collins.
Jun 27 '08 #2
On 19 מאי, 01:13, Ian Collins <ian-n...@hotmail.comwrote:
arjor wrote:

[it's preprocessor, not precompiler]
hey guys
i was wondering what's the difference between the following commands:
#ifndef
#if !defined
looks to be the same or is it ?

They are synonymous.

--
Ian Collins.
Thanks for the quick reply
Jun 27 '08 #3
Ian Collins wrote:
arjor wrote:

[it's preprocessor, not precompiler]
>hey guys

i was wondering what's the difference between the following commands:

#ifndef
#if !defined

looks to be the same or is it ?

They are synonymous.
They are synonymous, except that !defined can be used in a preprocessor
expression...

e.g.:

#if !defined(THIS) && defined(THAT)

Jun 27 '08 #4
In article <3e67744b-5027-49e6-987a-646f97e27f51@
34g2000hsh.googlegroups.com>, as****@gmail.com says...
hey guys

i was wondering what's the difference between the following commands:

#ifndef
#if !defined

looks to be the same or is it ?
As-is, they're synonyms. The latter allows combinations of boolean logic
such as:

#if !defined(x) && !defined(y)

which are clumsier to produce with #ifndef.

--
Later,
Jerry.

The universe is a figment of its own imagination.
Jun 27 '08 #5
On May 19, 2:23 am, r...@zedat.fu-berlin.de (Stefan Ram) wrote:
red floyd <no.s...@here.dudewrites:
>>i was wondering what's the difference between the following commands:
#ifndef
#if !defined
They are synonymous.
They are synonymous, except that !defined can be used in a
preprocessor expression...
This is not an exception to the assertion that these commands
are synonymous, because assertions about whether !defined
can be used in such an expression are not in the scope of the
assertion of the synonymity of these two preprocessor
commands.
Yes and no. In the first case, you have the preprocessor
command #ifndef, in the second the preprocessor command #if. It
really depends on what you consider is a "preprocessor command".
For another example, the statements i++; and ++i; are
synonymous, but the expressions i++ and ++i are not.
But the assertion about the expressions is not an exception
to the assertion about the statements.
Yes, but he clearly doesn't have a complete preprocessor
directive in either case, since there's no symbol after the
#ifndef or the defined.
However, the above preprocessor commands actually are not
commands at all, but directives - preprocessing directives.
What he wrote are not legal preprocessing directives. More is
needed. The first is considerably more restrictive with regards
to what that more can be.

--
James Kanze (GABI Software) email:ja*********@gmail.com
Conseils en informatique oriente objet/
Beratung in objektorientierter Datenverarbeitung
9 place Smard, 78210 St.-Cyr-l'cole, France, +33 (0)1 30 23 00 34

Jun 27 '08 #6

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by Carlos De Matos | last post: by
8 posts views Thread by Bill Pursell | last post: by
10 posts views Thread by RainerF | last post: by
22 posts views Thread by JohnQ | last post: by
104 posts views Thread by JohnQ | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.