× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: C style assignment of variable values
  • From: boldt@xxxxxxxxxx
  • Date: Tue, 5 Oct 1999 15:58:03 -0400




Eric wrote:
>Would it be possible to make the following expression valid in future
>versions of the compiler???
>
>EVAL    C_NumRecs = C_MailFlags = C_UserFlags = 0
>
>And no I do not need to put a statement terminator on the end of that :-)
>
>It seems that evaluation of this sort of expression should be easy when
>evaluated from right to left (like C does). Not a big thing but I like to do
>that sort of thing to reduce initializations to a small block of code. And
>yes I know that there are a million and one ways to achieve the same goal,
>Named datastructure with initializations etc... I just find the above to be
>readable and love to know what I am initializing near the code that I am
>working with.

Unfortunately, the = operator is overloaded in RPG IV.  It's used
for both assignment and comparison.  The above EVAL statement is
almost valid today.  Replace it with, say:

EVAL    A = B = C

and you'd have a valid RPG IV statement.  It wouldn't do what you
expected, though.  First, expression B = C would be evaluated
giving an indicator value.  The result of that comparison would
then be assigned to A.

The main issue here is that in RPG IV, assignment is considered a
statement.  But in other languages, like C and Perl, it is an
expression.  With assignment as an expression, you run into such
messy issues like order of evaluation and side effects.  (Not to
mention the common C bug: if(a=b)!)

OTOH, we could possibly come up with some different syntax like:

EVAL    A, B, C = 0

Cheers!  Hans

Hans Boldt, ILE RPG Development, IBM Toronto Lab, boldt@ca.ibm.com


+---
| This is the RPG/400 Mailing List!
| To submit a new message, send your mail to RPG400-L@midrange.com.
| To subscribe to this list send email to RPG400-L-SUB@midrange.com.
| To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.