cvs.gedasymbols.org/archives/browse.cgi | search |
From: | cberry AT cinenet DOT net (Craig Berry) |
Newsgroups: | comp.os.msdos.djgpp |
Subject: | Re: [Q] array declaration |
Date: | 13 Oct 1997 16:48:53 GMT |
Organization: | Cinenet Communications,Internet Access,Los Angeles;310-301-4500 |
Lines: | 38 |
Distribution: | world |
Message-ID: | <61tjdl$mmm$1@marina.cinenet.net> |
References: | <Pine DOT SGI DOT 3 DOT 91 DOT 971007161047 DOT 19768A-100000 AT atmosp DOT physics DOT utoronto DOT ca> |
NNTP-Posting-Host: | hollywood.cinenet.net |
To: | djgpp AT delorie DOT com |
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
Paul Shirley (Paul AT no DOT spam DOT please) wrote: : In article <Pine DOT SUN DOT 3 DOT 91 DOT 971008110125 DOT 28262M-100000 AT is>, Eli Zaretskii : <eliz AT is DOT elta DOT co DOT il> writes : >There are other solutions, but none of them is elegant. This happens : >to be one of the ugliest problems in C. : : The 'elegant' solution is to #define the array size in a header (the : same one you declare the array seems a good idea;) then use it in both : the declaration and definition of the array. : : so.. : #define MYSIZE (280) : extern char myarray[MSYIZE]; : : ...later... : #include <the header> : char myarray[MYSIZE]; : : This guarantees that all references to myarray see the same sized array. : (And makes sure that make will keep all uses in sync as a bonus.) Or, for the truly paranoid: In the header: #define MY_ARRAY_SIZE (260) typedef char MyArrayType[MY_ARRAY_SIZE]; extern MyArrayType myArray; Somewhere in the source which includes this header: MyArrayType myArray; --------------------------------------------------------------------- | Craig Berry - cberry AT cinenet DOT net --*-- Home Page: http://www.cinenet.net/users/cberry/home.html | Member of The HTML Writers Guild: http://www.hwg.org/ "Every man and every woman is a star."
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |