flex

Bill.Stewart.<ho95c> wcs at skep2.ATT.COM
Fri May 20 07:02:06 AEST 1988


In article <278 at sdrc.UUCP> scjones at sdrc.UUCP (Larry Jones) writes:
:In article <690 at naucse.UUCP>, jdc at naucse.UUCP (John Campbell) writes:
:> The 'C' question: :>   Flex has the following global line:
:>      FILE *yyin=stdin, *yyout=stdout;
:>   which does not work at compile time on VMS.  In other words, it appears
:>   the compiler does not treat stdin as a constant--it's value is known only
:>   at run-time.  (VMS stdio.h says "extern noshare FILE *stdin;.) To work 
:
:According to the latest ANSI draft (and many of the previous ones), stdin and
:friends are simply expressions and not necessarily constant expressions.  Thus,
:they may not be used portably to initialize objects with static storage
:duration.  So, the compiler's OK, flex is not maximally portable (as you

If the compiler's OK, what's this "noshare" business?  It's been  a while
since I've seen the ANSI C draft, but I don't remember that being in it -
it looks kind of like noalias?  (Noalias had to go, and did - it was
non-negotiable.)  Also, something you declare to be extern shouldn't be
assumed to be constant.  So both are somewhat non-portable.
-- 
#				Thanks;
# Bill Stewart, AT&T Bell Labs 2G218, Holmdel NJ 1-201-949-0705 ihnp4!ho95c!wcs
# skep2 is a local machine I'm trying to turn into a server.  Please send
# mail to ho95c or ho95e instead.  Thanks.



More information about the Comp.lang.c mailing list