|
From: Erik Olsson <erik.eo.olsson@xxxxxxxxx>expression
To: C programming iSeries / AS400 <c400-l@xxxxxxxxxxxx>
Date: 05/10/2011 02:08 PM
Subject: Re: [C400-L] digitsof in a declaration
Sent by: c400-l-bounces+albertaa=us.ibm.com@xxxxxxxxxxxx
Thanks (again) Aaron. Should I bother reporting it?
Mark. Sorry if I came across as under researched but I think the
code said both C (in C++ you use bcd.h) and decimal.h.
Thanks,
Erik
On 10 maj 2011, at 17:50, Aaron Albertson <albertaa@xxxxxxxxxx> wrote:
Hi all,
Mark - Erik's code _does_ include decimal.h.
Erik - This appears to be a bug in the C compiler.
These declarations work:
char periodString[digitsof(var)];
char periodString[10 + 1];
but this does not:
char periodString[digitsof(var) + 1];
It appears to be a problem with using the digitsof macro in an
on the array declaration.--
As a workaround you could just allocate the storage:
char *periodString = (char *)malloc(digitsof(myrec.DECFIELD) + 1);
Thanks,
Aaron Albertson
c400-l-bounces+albertaa=us.ibm.com@xxxxxxxxxxxx wrote on 05/10/2011
10:06:25 AM:
From: "Mark S. Waterbury" <mark.s.waterbury@xxxxxxxxxxxxx>--
To: C programming iSeries / AS400 <c400-l@xxxxxxxxxxxx>
Date: 05/10/2011 10:10 AM
Subject: Re: [C400-L] digitsof in a declaration
Sent by: c400-l-bounces+albertaa=us.ibm.com@xxxxxxxxxxxx
Hi, again, Erik:
Further searching of the InfoCenterI found this:
To use the decimal digitsof, and precisionof macros in your code,
you must specify
#include <decimal.h>
in your ILE C source.
(Did you even _try_ to search for an answer, e.g. in the InfoCenter,
before asking on the C/400 list?)
HTH,
Mark S. Waterbury
On 5/10/2011 10:46 AM, Erik Olsson wrote:--
Anyone understand why I can't use the digitsof keyword in a
declaration? It's based on a decimal field in a struct that is known
at compile time so I don't see the problem.
#include<decimal.h>
#include</source/yada/tabledefs/myfile.h>
/* ... */
FLXDXYZ_MYFILE_MYFILE_both_t myrec;
char periodstring[digitsof(myrec.DECFIELD) + 1];
I get this: "Integral constant expression with a value greater than
zero is required"
Best wishes,
Erik
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.