First C program
Frank Kolmann <[email protected]>
| Newsgroups | gmane.comp.lang.as400.c |
|---|---|
| Message-ID | <CAB-SQviybi_mR8V97iV575Ba_U5nQ2hpnuksTNd_XzoxHsN6JA@mail.gmail.com> |
Hi Jevgeni Thank you. You make a valuable point. Frank >*Subject: Re: First C program > *From: Jevgeni Astanovski <Jevgeni.Astanovski@xxxxxxxxxxxxx> > *Date: Thu, 3 Apr 2014 10:53:31 +0000 > >One more thing. > You write: > memcpy (sfrcd.S01FUNC , " ", 2 ); > memcpy (sfrcd.S01APFILE, " ", 10 ); > memcpy (sfrcd.S01APLIB , " ", 10 ); > memcpy (sfrcd.S01APACCP, " ", 1 ); > memcpy (sfrcd.S01APUNIQ, " ", 1 ); > memcpy (sfrcd.S01APSELO, " ", 1 ); > memcpy (sfrcd.S01APFTYP, " ", 1 ); > memcpy (sfrcd.S01APJOIN, " ", 1 ); > memcpy (sfrcd.S01APKEYO, " ", 1 ); > memcpy (sfrcd.S01APKSEQ, pfrcd.APKSEQ, 1 ); > memcpy (sfrcd.S01APKSIN, pfrcd.APKSIN, 1 ); > memcpy (sfrcd.S01APKEYF, pfrcd.APKEYF, 10 ); > >My advise is to do it another way: > memset (&sfrcd, ' ', sizeof(sfrcd)) ; > memcpy (sfrcd.S01APKSEQ, pfrcd.APKSEQ, 1 ); > memcpy (sfrcd.S01APKSIN, pfrcd.APKSIN, 1 ); > memcpy (sfrcd.S01APKEYF, pfrcd.APKEYF, 10 ); > >C differs from other languages - it does not initialize variables >on declarations in general, and structures - in particular. >So by setting full structure to spaces and then assigning/initializing >only specific fields you make your program at least shorter. But also more reliable. >Of course you must take care of numeric fields - >you have to explicitly assign valid numeric values to them before accessing. -- This is the Bare Metal Programming IBM i (AS/400 and iSeries) (C400-L) mailing list To post a message email: C400-L-Zwy7GipZuJhWk0Htik3J/[email protected] To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/c400-l or email: C400-L-request-Zwy7GipZuJhWk0Htik3J/[email protected] Before posting, please take a moment to review the archives at http://archive.midrange.com/c400-l.