|
Actually the fact, that count is a constant is probably the only reason for it to be non lvalue. I think, that if you will remove reference to variable count from the function "funct", compile the program (proably you will not get an error, and run the program in debug mode, you will be able to understand, if count is a constant or not, if it is a variable, it should be in stack, if constant - in program code segment. I recall that i hade similar errors with pointer to string. If you do it like: char *astring = "ABCDEFGH" ; then you cannot modify astring value, as it points to a constant... but char astring[8] = "ABCDEFGH" ; works fine. Sorry for syntax. > -----Original Message----- > From: Jevgeni Astanovski > Sent: Wednesday, August 18, 2004 7:11 PM > To: C programming iSeries / AS400 > Subject: RE: [C400-L] Ebcdic2ascii > > > My compiler gave Beppe's error message when I modified my > program like this: > > void funct(char *dest, const char *srce, const size_t count) > { > while(count-- != 0) > { > *dest++ = 256 - (*srce++) ; > } > } > > Don't you think, that as the calling function is declared as > static, and count variable is defined there, compiler did > some wrong assumptions? > > > -----Original Message----- > > From: Bob Crothers [mailto:bob@xxxxxxxxxxxxxx] > > Sent: Wednesday, August 18, 2004 7:07 PM > > To: 'C programming iSeries / AS400' > > Subject: RE: [C400-L] Ebcdic2ascii > > > > > > It is also a good practice to have the variable on the right and the > > constant on the left. That way the compiler will catch the > > mistake of: > > > > while (x = 0) > > > > Eg: Single equal sign is an assignment statement...usually > > what is desired > > is a == for " while x equals 0". > > > > Bob > > > > > -----Original Message----- > > > From: c400-l-bounces@xxxxxxxxxxxx > > [mailto:c400-l-bounces@xxxxxxxxxxxx] On > > > Behalf Of Hall, Philip > > > Sent: Wednesday, August 18, 2004 11:01 AM > > > To: C programming iSeries / AS400 > > > Subject: RE: [C400-L] Ebcdic2ascii > > > > > > > > > > 0 283 | while (count-- != 0) á > > > > > > I know this might seem simplistic, but have you tried changing the > > > position of the variables? i.e using while( 0 != count-- ) > > > > > > Perhaps the compiler is doing some (arguably, 'smart') > > manipulation of the > > > storage class of the left-hand side variable in an attempt > > to stream line > > > the code, which in turn makes the left-hand variable no longer a > > > modifiable variable - which *is* a bug if it turns out to > > be the case. > > > > > > --phil > > > > > > > > > > > > _______________________________________________ > > > This is the C programming iSeries / AS400 (C400-L) mailing list > > > To post a message email: C400-L@xxxxxxxxxxxx > > > To subscribe, unsubscribe, or change list options, > > > visit: http://lists.midrange.com/mailman/listinfo/c400-l > > > or email: C400-L-request@xxxxxxxxxxxx > > > Before posting, please take a moment to review the archives > > > at http://archive.midrange.com/c400-l. > > > > > > _______________________________________________ > > This is the C programming iSeries / AS400 (C400-L) mailing list > > To post a message email: C400-L@xxxxxxxxxxxx > > To subscribe, unsubscribe, or change list options, > > visit: http://lists.midrange.com/mailman/listinfo/c400-l > > or email: C400-L-request@xxxxxxxxxxxx > > Before posting, please take a moment to review the archives > > at http://archive.midrange.com/c400-l. > > > > > > _______________________________________________ > This is the C programming iSeries / AS400 (C400-L) mailing list > To post a message email: C400-L@xxxxxxxxxxxx > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/mailman/listinfo/c400-l > or email: C400-L-request@xxxxxxxxxxxx > Before posting, please take a moment to review the archives > at http://archive.midrange.com/c400-l. > >
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.