C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Re: linked list
Goto page Previous  1, 2, 3 ... 27, 28, 29, 30, 31, 32  Next
 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C Language
View previous topic :: View next topic  
Author Message
Thad Smith
Guest





PostPosted: Sun May 06, 2007 5:04 am    Post subject: Re: Bit manipulation Reply with quote



Hallvard B Furuseth wrote:
Quote:
Thad Smith writes:

Hallvard B Furuseth wrote:

Carramba writes:

but code seems uggly and feels unsafe.. what way would you recommend for
exchanges bit from certain position and down?
[31a 30a ...5a 4a 3a 2a 1a 0a] and [31b 30b ...5b 4b 3b 2b 1b 0b] from
position 3 =
result1 = [31a 30a ...5a 4a 3a 2b 1b 0b]
result2 = [31b 30b ...5b 4b 3b 2a 1a 0a]

/* n < (#bits in an unsigned int), otherwise behavior is undefined */
void crossover(unsigned *a, unsigned *b, unsigned n) {
unsigned mask = (1U << n) - 1;
unsigned swap = (*a ^ *b) & mask;
*a ^= swap;
*b ^= swap;
}

This is an elegant implementation, but the mask is off by one
position. For example, if we want to exchange bits from position 1 and
down, the mask should be 3, not 1.

No, his example (quoted above) shows that for "position n", n bits
should be swapped.

Ah, the old "which is correct, the example or the specification"
problem. I looked at the wording and didn't see the discrepancy with
the example.

--
Thad
Back to top
Peter Nilsson
Guest





PostPosted: Sun May 06, 2007 6:49 am    Post subject: Re: Bit manipulation Reply with quote



Hallvard B Furuseth <h.b.furus...@usit.uio.no> wrote:
Quote:
Peter Nilsson <a...@acay.com.au> writes:
Hallvard B Furuseth <h.b.furus...@usit.uio.no> wrote:
/* n < (#bits in an unsigned int), otherwise behavior
is undefined */

It also works if a == b.

When n >= #bits, you mean?

No. I mean that your function works if a and b point to the
same object. In contrast, consider...

void crossover(unsigned *a, unsigned *b, unsigned n) {
unsigned mask = (1U << n) - 1;
*a ^= *b & mask;
*b ^= *a & mask;
*a ^= *b & mask;
}

If a == b, then this will simply zero the lower n bits.

--
Peter
Back to top
Richard Bos
Guest





PostPosted: Wed May 09, 2007 9:11 am    Post subject: Re: printf Reply with quote



ramesh nellore1 nellore <nelapativenkataramesh (AT) gmail (DOT) com> wrote:

Quote:
On May 8, 5:44 pm, yashwant pinge <yashwantpinge (AT) gmail (DOT) com> wrote:
The following statement
printf("%d %c");

gives the garbage value

Why it is...?

In C lang the % character has a specific functionality.

Yes, it does, but...

Quote:
This can be used while printing any data which is stored in variables
like that.

....no, it can't. At least, not in general. In all other contexts in C,
the % character is either part of a digraph, if you have C99, or the
modulus operator, in any version of the language. _Only_ in the specific
context of the format string for the *scanf() and *printf() families
does the % character mean "do an in-/output conversion", and only in the
*printf()s does it (in most cases!) mean "print some data".

It's important to realise that this only works because that's how
printf() are defined, and not because of something special about the %
character itself. For example, puts("%d %c") will work just fine, and it
will print two percentage characters, two letters, one space and one
new-line; the %s will not magically cause the printing of other data.

Quote:
Here in this statement " printf("%d %c"); " u not mentioned the
variables, which stores the data( need to print).

This, however (except for the schoolboy abbreviation; don't do that if
you want to be taken seriously) is correct.

Richard
Back to top
ramesh nellore1 nellore
Guest





PostPosted: Wed May 09, 2007 9:12 am    Post subject: Re: printf Reply with quote

On May 8, 5:44 pm, yashwant pinge <yashwantpinge (AT) gmail (DOT) com> wrote:
Quote:
The following statement
printf("%d %c");

gives the garbage value

Why it is...?

In C lang the % character has a specific functionality. This can be
used while printing any data which is stored in variables like that.
Here in this statement " printf("%d %c"); " u not mentioned the
variables, which stores the data( need to print). And u just specified
the format strings.

Thanks & Regards,
Back to top
Bill Reid
Guest





PostPosted: Mon May 14, 2007 4:06 am    Post subject: Re: What is wrong with this code? Reply with quote

Richard Tobin <richard (AT) cogsci (DOT) ed.ac.uk> wrote in message
news:f280o9$g5l$2@pc-news.cogsci.ed.ac.uk...
Quote:
In article <3eI1i.144346$VU4.102084@bgtnsc05-news.ops.worldnet.att.net>,
Bill Reid <hormelfree (AT) happyhealthy (DOT) net> wrote:

typedef struct {
unsigned value_1;
double value_2;
double value_3;
double value_4;
} VALUES;

typedef struct {
unsigned num_values;
unsigned tot_value_1;
double tot_value_2;
double tot_value_3;
double tot_value_4;
VALUES values[MAX_VALUES];
} VALUES_STRUCT;

To avoid replicating the fields here, you could do

typedef struct {
unsigned num_values;
VALUES total[MAX_VALUES];
VALUES values[MAX_VALUES];
} VALUES_STRUCT;

and refer to v.total.value1 instead of v.tot_value_1, etc.

double add_double_numbers
(void *number,unsigned num_numbers,unsigned inc_size) {
void *void_ptr=NULL;
char *inc_ptr=number;
double *double_ptr=NULL;
unsigned number_num=0;
double total=0.0;

while(number_num<num_numbers) {
void_ptr=inc_ptr;
double_ptr=void_ptr;
total+=*double_ptr;
inc_ptr+=inc_size;
number_num++;
}

return total;
}

I would prefer something like:

double add_double_numbers(double *base, size_t count, size_t stride)
{
unsigned char *byte_ptr = (unsigned char *)base;
unsigned i;
double total=0.0;

for(i=0; i<count; i++)
{
total += *(double *)byte_ptr;
byte_ptr += stride;
}

return total;
}

Since the function only works for doubles, you gain nothing by making
the argument void *; use double * to emphasise its meaning.

OK, that's a good point, my problem is that I'm not that clever at

writing "C" code, so let me try this out and see how it works...

Quote:
size_t is the right type for object counts and sizes (cf calloc()).

Yes, although in most all cases I don't think I'll be exceeding

an unsigned...

Quote:
I prefer my variable names; others may disagree. ("Stride" is a
standard term for this sort of distance between successive elements.)

Never really heard of it...


Quote:
There's no need to use both void and char pointers; converting a
correctly aligned pointer to and from a char pointer is guaranteed to
work. "Char" would be just as correct as "unsigned char" but the
latter is perhaps better for generic byte pointers.

Seems like I get some warnings when I get a little too frisky with

pointer assignments and casts, and I don't use code that has warnings...let
me see what happens...

Quote:
Using a cast in the accumulating expression instead of an extra
variable and assignment might not be to everyone's taste, but reducing
the vertical size of a function aids readability in my opinion.

When a loop is over a sequence of integers, a for loop is clearer than
a while loop.

Yeah, more straightforward to maintain and code in the first place,

too...there is no particular logic as to why I used a "while" loop in the
test code I posted...

---
William Ernest Reid
Back to top
Barry Schwarz
Guest





PostPosted: Mon May 14, 2007 4:37 am    Post subject: Re: What is wrong with this code? Reply with quote

On Sun, 13 May 2007 20:33:11 GMT, "Bill Reid"
<hormelfree (AT) happyhealthy (DOT) net> wrote:

Quote:

Walter Roberson <roberson (AT) ibd (DOT) nrc-cnrc.gc.ca> wrote in message
news:f27kud$50$1 (AT) canopus (DOT) cc.umanitoba.ca...
In article <3eI1i.144346$VU4.102084@bgtnsc05-news.ops.worldnet.att.net>,
Bill Reid <hormelfree (AT) happyhealthy (DOT) net> wrote:

You fail to include <stdio.h>, which would affect the interpretation
of printf(), possibly causing garbage values to be printed out.

Uh, yeah, for me on this compiler, just a warning, I think. I haven't
actually compiled the actual code I posted, just similar stuff...

No, it is a diagnostic. The fact that your compiler calls it a
warning is irrelevant. The error causes undefined behavior.

Quote:

Other than that: what is the difference between the output you
see and the output you expect?

I get exactly what I expect. Honestly, I was looking for some
type of criticism of the general approach for accessing structure
elements in add_double_numbers(), that's all.

If you haven't compiled the code, then how do you get what you expect?

Quote:

There are some ideas so wrong that only a very intelligent person
could believe in them. -- George Orwell

That is precisely the point, that is precisely the point. Here, let's
try again...what is wrong with this code?

It suffers from attempting to implement a really poor design. You go
through ridiculous contortions whose only apparent purpose is to avoid
using a pointer to struct.

A little horizontal white space would make your code a lot more
readable.

Quote:

#include <stdio.h> /* !!!!!!!!!!!! */

#define MAX_VALUES 64

typedef struct {
unsigned value_1;
double value_2;
double value_3;
double value_4;
} VALUES;

typedef struct {
unsigned num_values;
unsigned tot_value_1;
double tot_value_2;
double tot_value_3;
double tot_value_4;
VALUES values[MAX_VALUES];
} VALUES_STRUCT;

VALUES_STRUCT values_struct=
{3,0,0.0,0.0,0.0,{{1,1.0,1.0,1.0},{1,1.0,1.0,1.0},{1,1.0,1.0,1.0}}};

The use of a global struct is another unnecessary design flaw.

Quote:

double add_double_numbers
(void *number,unsigned num_numbers,unsigned inc_size) {

If you change the first parameter to VALUES *struct_ptr, you can
eliminate the third parameter ..

Quote:
void *void_ptr=NULL;
char *inc_ptr=number;
double *double_ptr=NULL;

and all three of these ...

Quote:
unsigned number_num=0;
double total=0.0;

while(number_num<num_numbers) {
void_ptr=inc_ptr;
double_ptr=void_ptr;

and both of these ...

Quote:
total+=*double_ptr;

and change the second expression to struct_ptr->value_4

Quote:
inc_ptr+=inc_size;

and replace this with a simple
struct_ptr++;

Quote:
number_num++;
}

The common idiom for this loop would be
for (number_num = 0;
number_num < num_numbers;
number_num++, struct_ptr++){
and delete the last two lines of "manual increments."

Quote:

return total;
}

void add_value_4(void) {

values_struct.tot_value_4=add_double_numbers
(&values_struct.values[0].value_4,values_struct.num_values,
sizeof(VALUES));

The argument list would then be
(values_struct.values, values_struct.num_values)
Quote:

printf("\nThe total is %f",values_struct.tot_value_4);

Since your value is a double, why not use %lf and avail yourself of
the extra precision.

Quote:
}

int main(void) {

add_value_4();

return 0;
}

---


Remove del for email
Back to top
Richard Tobin
Guest





PostPosted: Mon May 14, 2007 4:44 am    Post subject: Re: What is wrong with this code? Reply with quote

In article <od6f43pd20234pdpgmtdfi6r8o3it9fokh (AT) 4ax (DOT) com>,
Barry Schwarz <schwarzb (AT) doezl (DOT) net> wrote:

Quote:
It suffers from attempting to implement a really poor design. You go
through ridiculous contortions whose only apparent purpose is to avoid
using a pointer to struct.

I think you've missed the point. It's intended to be usable with
different structures and different members of the structures. Of
course, a comment explaining that would be a good idea!

-- Richard
--
"Consideration shall be given to the need for as many as 32 characters
in some alphabets" - X3.4, 1963.
Back to top
Chris Torek
Guest





PostPosted: Mon May 14, 2007 9:11 am    Post subject: Re: What is wrong with this code? Reply with quote

Quote:
Richard Tobin <richard (AT) cogsci (DOT) ed.ac.uk> wrote in message
news:f280o9$g5l$2@pc-news.cogsci.ed.ac.uk...
I prefer my variable names; others may disagree. ("Stride" is a
standard term for this sort of distance between successive elements.)

In article <1SM1i.145726$VU4.121701@bgtnsc05-news.ops.worldnet.att.net>,
Bill Reid <hormelfree (AT) happyhealthy (DOT) net> wrote:
Quote:
Never really heard of it...

It is a compiler-geek term, found in "array descriptors" in languages
that have such things (the common keywords here are "base",
"bound(s)", "offset", and "stride"). I almost used it, but decided
to stick with the original name, when I switched to "i" and "n".
--
In-Real-Life: Chris Torek, Wind River Systems
Salt Lake City, UT, USA (40°39.22'N, 111°50.29'W) +1 801 277 2603
email: forget about it http://web.torek.net/torek/index.html
Reading email is like searching for food in the garbage, thanks to spammers.
Back to top
Bill Reid
Guest





PostPosted: Mon May 14, 2007 9:12 am    Post subject: Re: What is wrong with this code? Reply with quote

Chris Torek <nospam (AT) torek (DOT) net> wrote in message
news:f27up702nh2 (AT) news5 (DOT) newsguy.com...
Quote:
In article <bCK1i.144938$VU4.58740@bgtnsc05-news.ops.worldnet.att.net
Bill Reid <hormelfree (AT) happyhealthy (DOT) net> wrote:

I get exactly what I expect. Honestly, I was looking for some
type of criticism of the general approach for accessing structure
elements in add_double_numbers(), that's all.

Oh ... in that case, as far as I can tell, the code is valid. It
does seem "slightly dangerous" (in the sense that it would be easy
for a caller to provide improper arguments, and then have everything
go kaboom). Also, while we tend to discourage casts in comp.lang.c,
I would probably go ahead and use them here, and make a few other
minor changes:

/*
* Iterate over some kind of array, which may be an array of structures
* or array of arrays, in which there is at least one "double" element.
* Add up the n "double" elements that are spaced apart by
* "inc_size" bytes, given a pointer to the first such "double".
*/
double add_double_numbers(double *first, size_t n, size_t inc_size) {
unsigned char *p; /* will point to our various "double"s */
double total = 0.0;
size_t i;

p = (unsigned char *)first;
for (i = 0; i < n; i++) {
total += *(double *)p;
p += inc_size;
}
return total;
}

OK, I've tested this and it is a perfect "drop-in" fit for any of my

fundamental libraries that implement this type of structure element
access. It's got to be a little quicker because it eliminates the unneeded
pointer assignments (considering these libraries perform at least several
hundred billion loops a day, that's got to be worth a few seconds), and
should be more "type-safe" as well for ongoing development.

So thanks again because that's EXACTLY what I was looking for;
my original design was just the result of my general inability to handle
pointers very adroitly...

---
William Ernest Reid
Back to top
Bill Reid
Guest





PostPosted: Mon May 14, 2007 9:12 am    Post subject: Re: What is wrong with this code? Reply with quote

Richard Tobin <richard (AT) cogsci (DOT) ed.ac.uk> wrote in message
news:f280o9$g5l$2@pc-news.cogsci.ed.ac.uk...
Quote:
In article <3eI1i.144346$VU4.102084@bgtnsc05-news.ops.worldnet.att.net>,
Bill Reid <hormelfree (AT) happyhealthy (DOT) net> wrote:

To avoid replicating the fields here, you could do

typedef struct {
unsigned num_values;
VALUES total[MAX_VALUES];
VALUES values[MAX_VALUES];
} VALUES_STRUCT;

and refer to v.total.value1 instead of v.tot_value_1, etc.

Yeah, for the purposes of this "toy" code, but of course I really

WASN'T trying to add 1.0+1.0+1.0, despite what some people
seem to think! An actual structure I use might consist of several
dozen "results" or "descriptive" variables along with pointers to
several malloc'd arrays of 50-100 thousand structures containing
related values of floats, doubles, long doubles, ints...
Quote:

I would prefer something like:

double add_double_numbers(double *base, size_t count, size_t stride)
{
unsigned char *byte_ptr = (unsigned char *)base;
unsigned i;
double total=0.0;

for(i=0; i<count; i++)
{
total += *(double *)byte_ptr;
byte_ptr += stride;
}

return total;
}

Since the function only works for doubles, you gain nothing by making
the argument void *; use double * to emphasise its meaning.

Yup, this is almost identical to what Chris Torek came up with,

works like a champ. Thanks.

Quote:
size_t is the right type for object counts and sizes (cf calloc()).

Yes, "technically", which of course what this is all about...


Quote:
I prefer my variable names; others may disagree.

I tend to prefer nice big preferably unabbreviated English words that
I can understand immediately, but that's not really a "C" convention, now
is it?
Quote:

There's no need to use both void and char pointers; converting a
correctly aligned pointer to and from a char pointer is guaranteed to
work.

Yeah, this was a confusion on my part...I didn't really know that,
at least in a useful sense...

---
William Ernest Reid
Back to top
Bill Reid
Guest





PostPosted: Mon May 14, 2007 9:12 am    Post subject: Re: What is wrong with this code? Reply with quote

Barry Schwarz <schwarzb (AT) doezl (DOT) net> wrote in message
news:od6f43pd20234pdpgmtdfi6r8o3it9fokh (AT) 4ax (DOT) com...
Quote:
On Sun, 13 May 2007 20:33:11 GMT, "Bill Reid"
hormelfree (AT) happyhealthy (DOT) net> wrote:
Walter Roberson <roberson (AT) ibd (DOT) nrc-cnrc.gc.ca> wrote in message
news:f27kud$50$1 (AT) canopus (DOT) cc.umanitoba.ca...
In article
3eI1i.144346$VU4.102084@bgtnsc05-news.ops.worldnet.att.net>,
Bill Reid <hormelfree (AT) happyhealthy (DOT) net> wrote:

You fail to include <stdio.h>, which would affect the interpretation
of printf(), possibly causing garbage values to be printed out.

Uh, yeah, for me on this compiler, just a warning, I think. I haven't
actually compiled the actual code I posted, just similar stuff...

No, it is a diagnostic. The fact that your compiler calls it a
warning is irrelevant. The error causes undefined behavior.

Other than that: what is the difference between the output you
see and the output you expect?

I get exactly what I expect. Honestly, I was looking for some
type of criticism of the general approach for accessing structure
elements in add_double_numbers(), that's all.

If you haven't compiled the code, then how do you get what you expect?

Ummmm, let's think about this...maybe because I actually compiled

and linked two separate "translation units" with "extern" declarations
and typedefs in a what's called a "header file"? Maybe I just cut and
pasted that code into what appears to be a single source code file,
and just forgot to paste in the include stdio.h define? Naaahhhh,
never happen...
Quote:

There are some ideas so wrong that only a very intelligent person
could believe in them. -- George Orwell

That is precisely the point, that is precisely the point. Here, let's
try again...what is wrong with this code?

It suffers from attempting to implement a really poor design. You go
through ridiculous contortions whose only apparent purpose is to avoid
using a pointer to struct.

To repeat myself:


"That is precisely the point, that is precisely the point."

Hey, why not take it a step further; I'm actually going through the
ridiculous contortions to avoid using a pointer to an ARRAY. After
all, why couldn't I just declare four separate arrays, with four
separate variables for the number of elements in the arrays?
What the hell is the matter with me, anyway?

Quote:
A little horizontal white space would make your code a lot more
readable.

Another egregious personality flaw, perhaps requiring "professional"
help...
Quote:

VALUES_STRUCT values_struct=
{3,0,0.0,0.0,0.0,{{1,1.0,1.0,1.0},{1,1.0,1.0,1.0},{1,1.0,1.0,1.0}}};

The use of a global struct is another unnecessary design flaw.

Well, you didn't actually make me laugh here, but you did make

me smile...
Quote:

double add_double_numbers
(void *number,unsigned num_numbers,unsigned inc_size) {

If you change the first parameter to VALUES *struct_ptr, you can
eliminate the third parameter ..

Actually, thinking about it even more, I know realize that I could

have just done it like this:

double number_4_1=1.0;
double number_4_2=1.0;
double number_4_3=1.0;

double add_double_numbers_4(void) {
return (number_4_1+number_4_2+number_4_3);
}

OK, call off the hunt, we have a winner!!!

Quote:
void *void_ptr=NULL;
char *inc_ptr=number;
double *double_ptr=NULL;

and all three of these ...

Yeah, I've got you beat, but you helped!


Quote:
unsigned number_num=0;
double total=0.0;

while(number_num<num_numbers) {
void_ptr=inc_ptr;
double_ptr=void_ptr;

and both of these ...

Mine's much better, but again, you helped!


Quote:
total+=*double_ptr;

and change the second expression to struct_ptr->value_4

inc_ptr+=inc_size;

and replace this with a simple
struct_ptr++;

number_num++;
}

Well, now I FINALLY know how to increment through an array of

structs...
Quote:

printf("\nThe total is %f",values_struct.tot_value_4);

Since your value is a double, why not use %lf and avail yourself of
the extra precision.

Oh, I guess I just thought it was overkill for adding 1.0+1.0+1.0...but

you never know, tomorrow, I might try to add 2.0+2.0+2.0!!!

---
William Ernest Reid
Back to top
Don Bruder
Guest





PostPosted: Mon May 14, 2007 9:12 am    Post subject: Re: What is wrong with this code? Reply with quote

In article <CPedncwTkPrCZdrbnZ2dnUVZ8sqjnZ2d (AT) bt (DOT) com>,
Richard Heathfield <rjh (AT) see (DOT) sig.invalid> wrote:

Quote:
Ernie Wright said:

Chris Torek wrote:

["Stride"] is a compiler-geek term, found in "array descriptors"
in languages that have such things

It's also pretty common in computer graphics, where it denotes,
for example, the distance in bytes between the start of two
successive rows of an image. Because of alignment, interleaving,
bitplaning, and other things, this distance often differs from
the one that might be inferred from the image width and number
of bits per pixel.

To give a slightly different example of "stride", VGA gives you eight
(or possibly sixteen?) pages of 80x25 video memory, each of which
occupies 2000 bytes (80 x 25 x 2), but nevertheless starts on a
2048-byte boundary. I think this was possibly more for convenience than
for speed; 2048-byte boundaries are easy to remember, ending as they do
in either 0x...000 or 0x...800.

To the terminally insane, this meant you had a whole bunch of 48-byte
blocks where you could squirrel away stuff that wouldn't fit anywhere
else... </blush

Why does this remind me of the old Apple II's "screen holes"? :)

--
Don Bruder - dakidd (AT) sonic (DOT) net - If your "From:" address isn't on my whitelist,
or the subject of the message doesn't contain the exact text "PopperAndShadow"
somewhere, any message sent to this address will go in the garbage without my
ever knowing it arrived. Sorry... <http://www.sonic.net/~dakidd> for more info
Back to top
Ernie Wright
Guest





PostPosted: Mon May 14, 2007 9:12 am    Post subject: Re: What is wrong with this code? Reply with quote

Chris Torek wrote:

Quote:
Richard Tobin wrote:

("Stride" is a standard term for this sort of distance between
successive elements.)

Bill Reid wrote:

Never really heard of it...

It is a compiler-geek term, found in "array descriptors" in languages
that have such things

It's also pretty common in computer graphics, where it denotes, for
example, the distance in bytes between the start of two successive rows
of an image. Because of alignment, interleaving, bitplaning, and other
things, this distance often differs from the one that might be inferred
from the image width and number of bits per pixel.

- Ernie http://home.comcast.net/~erniew
Back to top
Richard Heathfield
Guest





PostPosted: Mon May 14, 2007 9:12 am    Post subject: Re: What is wrong with this code? Reply with quote

Ernie Wright said:

Quote:
Chris Torek wrote:

["Stride"] is a compiler-geek term, found in "array descriptors"
in languages that have such things

It's also pretty common in computer graphics, where it denotes,
for example, the distance in bytes between the start of two
successive rows of an image. Because of alignment, interleaving,
bitplaning, and other things, this distance often differs from
the one that might be inferred from the image width and number
of bits per pixel.

To give a slightly different example of "stride", VGA gives you eight
(or possibly sixteen?) pages of 80x25 video memory, each of which
occupies 2000 bytes (80 x 25 x 2), but nevertheless starts on a
2048-byte boundary. I think this was possibly more for convenience than
for speed; 2048-byte boundaries are easy to remember, ending as they do
in either 0x...000 or 0x...800.

To the terminally insane, this meant you had a whole bunch of 48-byte
blocks where you could squirrel away stuff that wouldn't fit anywhere
else... </blush>

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Back to top
Richard Heathfield
Guest





PostPosted: Mon May 14, 2007 9:12 am    Post subject: Re: What is wrong with this code? Reply with quote

Keith Thompson said:

Quote:
"Bill Reid" <hormelfree (AT) happyhealthy (DOT) net> writes:
Barry Schwarz <schwarzb (AT) doezl (DOT) net> wrote in message
news:od6f43pd20234pdpgmtdfi6r8o3it9fokh (AT) 4ax (DOT) com...
[...]
A little horizontal white space would make your code a lot more
readable.

Another egregious personality flaw, perhaps requiring "professional"
help...

Why do you respond to good advice with sarcasm?

Presumably because he isn't interested in good advice. Which suits me
just fine. Into the bozo bin with him...

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Back to top
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C Language All times are GMT
Goto page Previous  1, 2, 3 ... 27, 28, 29, 30, 31, 32  Next
Page 28 of 32

 
 


Powered by phpBB © 2001, 2006 phpBB Group