Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site brl-tgr.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!think!harvard!seismo!brl-tgr!tgr!lcc.niket@UCLA-LOCUS.ARPA From: lcc.niket@UCLA-LOCUS.ARPA (Niket K. Patwardhan) Newsgroups: net.lang.c Subject: Re: C programming hint Message-ID: <14@brl-tgr.ARPA> Date: Fri, 19-Jul-85 07:12:09 EDT Article-I.D.: brl-tgr.14 Posted: Fri Jul 19 07:12:09 1985 Date-Received: Sat, 20-Jul-85 12:34:56 EDT Sender: news@brl-tgr.ARPA Lines: 19 I scanned the C standards draft a while ago and remembered there was something about builtins. Well, I went back and checked, and found there isn't any declaration as such, but it does say (Page 68, Introduction of Library section) that "One implication of this restriction <....external identifiers starting with _ are reserved ....> is that implementations may provide special semantics for names starting with underscore. For example, _builtin_abs could be used to <.....define an inline abs>." It also warns that any function defined in a header file could be a macro, and that if you wanted your own function you should use the #undef directive to nullify any such macro definition before using your function. Thus an implementor says #define abs _builtin_abs in his header file, and users would get the builtin abs normally. If they wanted to use their own abs, they would #undef abs before using it.