John Allen wrote:
> On Tuesday 06 July 2004 12:00, Paul Jakma wrote:
>>>On Tue, 6 Jul 2004, Philip Reynolds wrote:
>>>>>You need to use a temporary variable, to allow the use of free() or
>>>removal of an element in the list.
>>>>Indeed. the problem is trying to stuff it into the for loop so that
>>macro will still work :)
>>>>>>>#define LIST_LOOP(L, V, N, temp) \
>>> for ((N) = (L)->head; \
>>> (N) && ((temp) = (N)->next); \
>>> (N) = (temp))
>>>>>>Something like the above.
>>>>Nah, that breaks the macro.
>>>>> The correct solution is obviously C++. Macros is bad.
>
What about declaring the function inline ?
inline void LIST_LOOP(list_t * L, list_t ** N){
assert(L);
* N=L->head;
for(; *N ;*N=*N->next)
return;
}
--
Bryan O'Donoghue
Embedded Software Engineer
Europlex Technologies Ltd
Clonshaugh Business & Technology Park
Dublin 17
Ireland
T:+353 (0) 1 2500500
F:+353 (0) 1 2500590
E:bryano at euoplex.ie
W:www.europlex.ie
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!