Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 31 May 2001 07:43:04 -0700
From:      Don Dugger <dugger@hotlz.com>
To:        j mckitrick <jcm@FreeBSD-uk.eu.org>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: what's wrong with this macro?
Message-ID:  <3B165878.E61B3574@hotlz.com>
References:  <20010531143315.A83651@dogma.freebsd-uk.eu.org> <3B164FDD.B59D380A@hotlz.com> <20010531151330.A84734@dogma.freebsd-uk.eu.org> <3B165467.9B71982@hotlz.com> <20010531153311.A85342@dogma.freebsd-uk.eu.org>

next in thread | previous in thread | raw e-mail | index | archive | help
There are some very important differences. Notice the "do" in front of
the "{".
This defines the block as a "do while" block in the other case it was
just a block which is fine in C++ but not in C.

Don 8)


j mckitrick wrote:
> 
> | you may need to change the CXX or CC to g++ or gcc. Normally this is
> | somewhere in the top of the Makefile.
> 
> And yet *this* excerpt compiles fine:
> 
> dogma:~> cat grr2.c
> #define Q_COMMAND_1(a, b) do { \
>         q_command[0] = '\0'; \
>         strcat(q_command, QUANTUM_PROLOGUE); \
>         strcat(q_command, a); \
>         strcat(q_command, b); \
>         strcat(q_command, QUANTUM_EPILOGUE); \
> } while(0)
> 
> dogma:~> cc grr2.c
> /usr/lib/crt1.o: In function `_start':
> /usr/lib/crt1.o(.text+0x79): undefined reference to `main'
> dogma:~>
> 
> jcm
> --
> "I drank WHAT ?!" - Socrates

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3B165878.E61B3574>