Newsgroup: comp.lang.c


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



Newsgroup comp.lang.c contents
Newsgroup list
Diomidis Spinellis home page

Creative Commons 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.