|
From: Steve Richter <stephenrichter@xxxxxxxxx>#pragma
To: "Bare Metal Programming IBM i (AS/400 and iSeries)" <c400-
l@xxxxxxxxxxxx>,
Date: 04/03/2014 10:40 AM
Subject: Re: [C400-L] First C program
Sent by: c400-l-bounces@xxxxxxxxxxxx
I notice that C++ does not support the #pragma mapinc statement:
#pragma mapinc("ddhpf","*libl/REL(*ALL)","input"," ",,"")
#include "ddhpf"
I was going to suggest compiling as C++ and using classes to reduce the
complexity of the code. But the CRTCPPMOD command does not support
mapinc ?possible
"QGPL/QRPGLESRC(CSAMPLEC)", line 22.10: CZP0836(30) The #include file
"ddhpf" is not found.
-Steve
On Thu, Apr 3, 2014 at 6:39 AM, Frank Kolmann <fkolmann@xxxxxxxxx> wrote:
Hi Jevgeni
Thank you. You make good points.
That is a good way of trapping the == issue.
I will follow Barbaras advice in the coding of the if.
I like the way you use the #define for the type defs.
It does make the code clearer, I will use that sytle.
Frank
*Subject: Re: First C program
*From: Jevgeni Astanovski <Jevgeni.Astanovski@xxxxxxxxxxxxx>
*Date: Wed, 2 Apr 2014 07:54:34 +0000
Yes. Barbara mentioned the define and I haven't...
Definitely there are lots of this sort of advises to avoid =/==
yourmistake.
I've never saw the one you referred.
However some use another technique:
Instead of writing
if ((pf = _Ropen(PFILENAME, "rr")) == NULL)
they write
if (NULL == (pf = _Ropen(PFILENAME, "rr")))
In this case if you make a mistake and write
if (NULL = (pf = _Ropen(PFILENAME, "rr")))
you will immediately get a syntax error.
....
On the second issue - this is purely a question of how readable is
program.--
My personal practice is to use "explicit" way of defining types. Forexample:
#pragma mapinc("dspf", "*LIBL/Y80ALD(ADDCHRG)", "both", "_P", "Y80","Y80")
#include "dspf"
#define INPUT_T Y80_ADDCHRG_i_t
#define OUTPUT_T Y80_ADDCHRG_o_t
--
in this case it is (more) clear where these types are derived from....
This is the Bare Metal Programming IBM i (AS/400 and iSeries) (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 Bare Metal Programming IBM i (AS/400 and iSeries) (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.