| Date: | Sun, 30 Apr 2006 17:30:27 +0300 | 
| From: | Diomidis Spinellis <dds@aueb.gr> | 
| Organization: | Athens University of Economics and Business | 
| User-Agent: | Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.2) Gecko/20060404 SeaMonkey/1.0.1 | 
| MIME-Version: | 1.0 | 
| Newsgroups: | comp.lang.c | 
| Subject: | Re: Function Signatures In time.h | 
| References: | <GC25g.54992$d5.209493@newsb.telia.net> | 
| In-Reply-To: | <GC25g.54992$d5.209493@newsb.telia.net> | 
| Content-Type: | text/plain; charset=ISO-8859-1; format=flowed | 
| Content-Transfer-Encoding: | 7bit | 
August Karlstrom wrote: > Does anyone know why some of the functions in time.h use pointers to > constant objects of type time_t when time_t is an aritmetic type. Why is > e.g. ctime declared as > > char* ctime(const time_t* tp); > > and not as > > char* ctime(time_t t); My guess is that this is an implementation decision related to the environment where C has its roots. In the Seventh Edition Unix (and probably also in earlier versions), time_t is implemented as a long <http://minnie.tuhs.org/UnixTree/V7/usr/include/sys/types.h.html>. On a PDP-11 where that 1979 version of Unix run, passing as an argument a 16 bit pointer to a 32 bit long was probably more efficient than passing the actual 32 bit value. -- Diomidis Spinellis Code Quality: The Open Source Perspective (Addison-Wesley 2006) http://www.spinellis.gr/codequality?clc
 Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-Share Alike 3.0 Greece License.
Unless otherwise expressly stated, all original material on this page created by Diomidis Spinellis is licensed under a Creative Commons Attribution-Share Alike 3.0 Greece License.