Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > Problem with #define

Reply
Thread Tools

Problem with #define

 
 
Harshit
Guest
Posts: n/a
 
      12-15-2004
I am working on socket programming, encountered a new and strange
problem today.

I am using #define PORT 80, before main(), and I am calling PORT in one
of the statments inside main(), I get an error, I don't know why this
error is occuring. If i remove PORT in the statement and substitute it
by 80, my code works fine.


I am sure that #define works in C, any idea why my code is not
programming, i can also email my code if required.

Thanks

Harshit

 
Reply With Quote
 
 
 
 
Merrill & Michele
Guest
Posts: n/a
 
      12-15-2004

> "Harshit"
> I am working on socket programming, encountered a new and strange
> problem today.
>
> I am using #define PORT 80, before main(), and I am calling PORT in one
> of the statments inside main(), I get an error, I don't know why this
> error is occuring. If i remove PORT in the statement and substitute it
> by 80, my code works fine.
>
>
> I am sure that #define works in C, any idea why my code is not
> programming, i can also email my code if required.


I believe this lies outside the scope of ISO C. Maybe one of the others
knows where to discuss this. MPJ


 
Reply With Quote
 
 
 
 
Lawrence Kirby
Guest
Posts: n/a
 
      12-15-2004
On Wed, 15 Dec 2004 04:25:29 -0800, Harshit wrote:

> I am working on socket programming, encountered a new and strange
> problem today.


Well C itself doesn't support socket programming, but your problem may be
(and sounds like) a language issue rather than relating to that.

> I am using #define PORT 80, before main(), and I am calling PORT in one
> of the statments inside main(), I get an error,


Saying "I get an error" isn't particularly useful. Detailing exactly what
error you get can and probably will be.

> I don't know why this
> error is occuring. If i remove PORT in the statement and substitute it
> by 80, my code works fine.


Given the amount of detail here it is difficult to say much more than
"there is a bug in your code". Of course your compiler may have a bug but
at this stage that is a much less likely cause.

> I am sure that #define works in C, any idea why my code is not
> programming, i can also email my code if required.


Post your code here. Preferably post a MINIMAL but COMPLETE program that
demonstrates the problem, and cut and paste real code - it doesn't help
anybody if we end up just debugging transcription errors. If you can
come up with a version of problem code that doesn't use socket facilities
all the better, that might even help you figure out the cause.

Lawrence
 
Reply With Quote
 
Richard Bos
Guest
Posts: n/a
 
      12-15-2004
"Merrill & Michele" <(E-Mail Removed)> wrote:

> "Harshit"
> > I am working on socket programming, encountered a new and strange
> > problem today.
> >
> > I am using #define PORT 80, before main(), and I am calling PORT in one
> > of the statments inside main(), I get an error, I don't know why this
> > error is occuring. If i remove PORT in the statement and substitute it
> > by 80, my code works fine.
> >
> > I am sure that #define works in C, any idea why my code is not
> > programming, i can also email my code if required.


Don't email code. Reduce it to the smallest compilable sample that still
shows the problem, then post it to the group. If you email it to someone
random and that person makes a mistake in his reply, who is going to
correct him? Here in comp.lang.c, though, you get free nit-picking by
professional nit-pickers from all over the world. And believe me, some
of us have elevated ye picking of ye nitte to a veritable art
Oh, and don't forget to include the _exact_ error you get ("It doesn't
work" is an error report I expect from users, not from my colleagues),
including whether it occurs at compile time or at run time, and under
what circumstances.

Without such information, it's impossible to give a reliable solution to
your problem. As a wild guess, though, maybe something else in your code
(an #included header, perhaps) is already #defining PORT?

> I believe this lies outside the scope of ISO C.


Why ever would you think that? #define most definitely is ISO C, has
been so since C89, and AFAIK was K&R as well.

Richard
 
Reply With Quote
 
Michael Coyne
Guest
Posts: n/a
 
      12-15-2004
On Wed, 15 Dec 2004 04:25:29 -0800, Harshit said to the parser:

> I am working on socket programming, encountered a new and strange problem
> today.
>
> I am using #define PORT 80, before main(), and I am calling PORT in one of
> the statments inside main(), I get an error, I don't know why this error
> is occuring. If i remove PORT in the statement and substitute it by 80, my
> code works fine.


Just at a guess (you don't provide any code), perhaps you have written:

#define PORT 80;

instead of:
#define PORT 80

The former substitutes 80 and a semi-colon. The latter substitutes just
80.

If 80 works fine, and your #define is correct, then using PORT should just
work, so there must be something else going on. Posting some code would
help the group help you.


Michael

 
Reply With Quote
 
Merrill & Michele
Guest
Posts: n/a
 
      12-15-2004

>"Richard Bos"
> >"Merrill & Michele"
> > > "Harshit"
> > > I am working on socket programming, encountered a new and strange
> > > problem today.
> > >
> > > I am using #define PORT 80, before main(), and I am calling PORT in

one
> > > of the statments inside main(), I get an error, I don't know why this
> > > error is occuring. If i remove PORT in the statement and substitute it
> > > by 80, my code works fine.
> > >
> > > I am sure that #define works in C, any idea why my code is not
> > > programming, i can also email my code if required.

>
> Don't email code. Reduce it to the smallest compilable sample that still
> shows the problem, then post it to the group. If you email it to someone
> random and that person makes a mistake in his reply, who is going to
> correct him? Here in comp.lang.c, though, you get free nit-picking by
> professional nit-pickers from all over the world. And believe me, some
> of us have elevated ye picking of ye nitte to a veritable art
> Oh, and don't forget to include the _exact_ error you get ("It doesn't
> work" is an error report I expect from users, not from my colleagues),
> including whether it occurs at compile time or at run time, and under
> what circumstances.
>
> Without such information, it's impossible to give a reliable solution to
> your problem. As a wild guess, though, maybe something else in your code
> (an #included header, perhaps) is already #defining PORT?
>
> > I believe this lies outside the scope of ISO C.

>
> Why ever would you think that? #define most definitely is ISO C, has
> been so since C89, and AFAIK was K&R as well.


The part that I thought was OT was any type of network activity. I would be
thrilled to find out that I'm completely wrong. You (Richard) posted about
a month back about the non-Standard nature of some activity being counted
along the horizon of a month. Do you recall the post? MP


 
Reply With Quote
 
CBFalconer
Guest
Posts: n/a
 
      12-15-2004
Harshit wrote:
>
> I am using #define PORT 80, before main(), and I am calling PORT in one
> of the statments inside main(), I get an error, I don't know why this
> error is occuring. If i remove PORT in the statement and substitute it
> by 80, my code works fine.
>
> I am sure that #define works in C, any idea why my code is not
> programming, i can also email my code if required.


Many C define problems are the result of a terminal ; in the
define.

--
Chuck F ((E-Mail Removed)) ((E-Mail Removed))
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!


 
Reply With Quote
 
Jens.Toerring@physik.fu-berlin.de
Guest
Posts: n/a
 
      12-15-2004
Merrill & Michele <(E-Mail Removed)> wrote:

>>"Richard Bos"
>>>"Merrill & Michele"
>>>> "Harshit"
>>>> I am using #define PORT 80, before main(), and I am calling PORT in
>>>> one
>>>> of the statments inside main(), I get an error, I don't know why this
>>>> error is occuring. If i remove PORT in the statement and substitute it
>>>> by 80, my code works fine.
>>>
>>> I believe this lies outside the scope of ISO C.

>>
>> Why ever would you think that? #define most definitely is ISO C, has
>> been so since C89, and AFAIK was K&R as well.


> The part that I thought was OT was any type of network activity. I would be
> thrilled to find out that I'm completely wrong. You (Richard) posted about
> a month back about the non-Standard nature of some activity being counted
> along the horizon of a month. Do you recall the post? MP


The OP wasn't asking about anything network related but just about
some problems (s)he has with a #define directive - and that's about
as on-topic as you can get here.
Regards, Jens
--
\ Jens Thoms Toerring ___ http://www.velocityreviews.com/forums/(E-Mail Removed)-berlin.de
\__________________________ http://www.toerring.de
 
Reply With Quote
 
Keith Thompson
Guest
Posts: n/a
 
      12-15-2004
http://www.velocityreviews.com/forums/(E-Mail Removed) (Richard Bos) writes:
> "Merrill & Michele" <(E-Mail Removed)> wrote:
>> "Harshit"
>> > I am working on socket programming, encountered a new and strange
>> > problem today.
>> >
>> > I am using #define PORT 80, before main(), and I am calling PORT in one
>> > of the statments inside main(), I get an error, I don't know why this
>> > error is occuring. If i remove PORT in the statement and substitute it
>> > by 80, my code works fine.
>> >
>> > I am sure that #define works in C, any idea why my code is not
>> > programming, i can also email my code if required.

>
> Don't email code. Reduce it to the smallest compilable sample that still
> shows the problem, then post it to the group.

[...]

(In this case, a compilable sample won't show the problem, assuming
that "I get an error" refers to a compilation failure.)

Agreed, but even posting just a couple of snippets of actual code,
along with the actual error message, is likely to be more useful than
a vague description. (By "actual code" I mean lines cut-and-pasted
from the actual source you're trying to compile, not re-typed.) For
example, if someone posted something like this:

] I am working on socket programming, encountered a new and strange
] problem today.
]
] I am using #define PORT 80, before main():
]
] #define PORT 80;
]
] and I am using PORT in one of the statements inside main():
]
] some_function(an_arg, PORT, another_arg);
]
] I get an error:
]
] foobar.c:42: error: parse error before ';' token
]
] I don't know why this error is occuring. If I remove PORT in the
] statement and substitute it by 80:
]
] some_function(an_arg, 80, another_arg);
]
] my code works fine.

we could have figured out the problem immediately. (I'm assuming, as
several other people here have, that it's a semicolon problem.)

This isn't always the case, of course. Sometimes nothing less than
the actual complete source file that you're feeding to the compiler
will do. But the more specific (not paraphrased) information you can
give us, the more likely we are to be able to help you.

--
Keith Thompson (The_Other_Keith) (E-Mail Removed) <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
 
Reply With Quote
 
Merrill & Michele
Guest
Posts: n/a
 
      12-16-2004

> "Keith Thompson"
> > (E-Mail Removed) (Richard Bos) writes:
> > "Merrill & Michele" <(E-Mail Removed)> wrote:
> >> "Harshit"
> >> > I am working on socket programming, encountered a new and strange
> >> > problem today.
> >> >
> >> > I am using #define PORT 80, before main(), and I am calling PORT in

one
> >> > of the statments inside main(), I get an error, I don't know why this
> >> > error is occuring. If i remove PORT in the statement and substitute

it
> >> > by 80, my code works fine.
> >> >
> >> > I am sure that #define works in C, any idea why my code is not
> >> > programming, i can also email my code if required.

> >
> > Don't email code. Reduce it to the smallest compilable sample that still
> > shows the problem, then post it to the group.

> [...]
>
> (In this case, a compilable sample won't show the problem, assuming
> that "I get an error" refers to a compilation failure.)
>
> Agreed, but even posting just a couple of snippets of actual code,
> along with the actual error message, is likely to be more useful than
> a vague description. (By "actual code" I mean lines cut-and-pasted
> from the actual source you're trying to compile, not re-typed.) For
> example, if someone posted something like this:
>
> ] I am working on socket programming, encountered a new and strange
> ] problem today.
> ]
> ] I am using #define PORT 80, before main():
> ]
> ] #define PORT 80;
> ]
> ] and I am using PORT in one of the statements inside main():
> ]
> ] some_function(an_arg, PORT, another_arg);
> ]
> ] I get an error:
> ]
> ] foobar.c:42: error: parse error before ';' token
> ]
> ] I don't know why this error is occuring. If I remove PORT in the
> ] statement and substitute it by 80:
> ]
> ] some_function(an_arg, 80, another_arg);
> ]
> ] my code works fine.
>
> we could have figured out the problem immediately. (I'm assuming, as
> several other people here have, that it's a semicolon problem.)
>
> This isn't always the case, of course. Sometimes nothing less than
> the actual complete source file that you're feeding to the compiler
> will do. But the more specific (not paraphrased) information you can
> give us, the more likely we are to be able to help you.


[SCOLDS BOY NOT TO TOUCH MOUSE]

I guess my contention is that the OP seems not to know where standard c
stops. This is critical to know in software development. Myself, I don't
know where c stops, but in clc I err on the side of strict interpretation.
MPJ


 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem problem problem :( Need Help Mike ASP General 2 05-11-2004 08:36 AM



Advertisments