CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

time()函数怎么不好用啊?

楼主myhaisky(飞翔)2006-03-07 20:16:43 在 Linux/Unix社区 / 程序开发区 提问

我遇到了一个奇怪的问题,请广大朋友给予帮助。  
   
  #include   <stdio.h>  
  #include   <stdlib.h>  
   
  int   main(int   argc,   char   **argv)  
  {  
          long   r   =   time();  
          return   0;  
  }  
   
  这个程序没有任何问题,编译成功,可是我只是添加了一些头文件,如下:  
  #include   <stdio.h>  
  #include   <stdlib.h>  
  #include   <sys/socket.h>  
  #include   <sys/types.h>  
  #include   <sys/param.h>  
  #include   <netinet/in.h>  
  #include   <arpa/inet.h>  
  #include   <netinet/ip.h>  
  #include   <string.h>  
  #include   <netdb.h>  
  #include   <netinet/tcp.h>  
  #include   <netinet/udp.h>  
  #include   <stdlib.h>  
  #include   <unistd.h>  
  #include   <signal.h>  
  #include   <net/if.h>  
  #include   <net/if_arp.h>  
  #include   <sys/ioctl.h>  
  #include   <sys/stat.h>  
  #include   <fcntl.h>  
  #include   <linux/if_ether.h>  
  #include   <linux/net.h>  
  #include   <net/ethernet.h>  
  #include   <errno.h>  
  #include   <netpacket/packet.h>  
  #include   <asm/types.h>  
  #include   <endian.h>  
  #include   <byteswap.h>  
  #include   <pthread.h>  
  #include   <sys/un.h>  
   
  int   main(int   argc,   char   **argv)  
  {  
          long   r   =   time();  
          return   0;  
  }  
      此时再次编译便出现错误(下面错误信息中的“time1.c”是源程序文件的名字):  
  time1.c:   In   function   `main':  
  time1.c:34:   error:   too   few   arguments   to   function   `time'  
   
      这令我十分疑惑,到底是为什么呢?难道是其他头文件中有类似的函数,或者其他的原因?上面那些头文件是我正在做的一个工程所要用到的头文件,所以我不想将它们中的某一个删除,但是我还想利用time()函数的功能,请问我该怎么办啊? 问题点数:40、回复次数:10Top

1 楼myhaisky(飞翔)回复于 2006-03-07 20:26:15 得分 0

补充一点:  
   
        我用的是fedora   core   3操作系统Top

2 楼phus(phus)回复于 2006-03-07 21:05:57 得分 10

time(NULL);Top

3 楼helios1688(瓶子)回复于 2006-03-07 22:39:24 得分 6

用到   time()应该要   time.h头文件吧  
  我在time.h文件中看了下  
  typedef   long time_t;  
  time_t   _Cdecl time (time_t   *timer);  
  time   函数是有参数的Top

4 楼fierygnu(va_list)回复于 2006-03-07 22:39:45 得分 5

man   2   time看time函数原型就明白了。Top

5 楼hundlom(托克维尔)回复于 2006-03-07 23:28:40 得分 0

你加入头文件后,程序在编译的时候找头文件的顺序改变了,试试仔细比对头文件的不同。Top

6 楼fierygnu(va_list)回复于 2006-03-07 23:31:59 得分 10

跟头文件顺序没有关系。没加头文件时,没有time的原型,怎么调用都可以,C编译器不报错。有了原型声明就不行了,因为C不支持函数覆盖,所以报错了。Top

7 楼myhaisky(飞翔)回复于 2006-03-10 12:34:01 得分 0

但是,各位高手,看过time的相关说明后,发现它只能精确到“秒(second)”,请问,能否获得精确到“毫秒”的时间呢?Top

8 楼fierygnu(va_list)回复于 2006-03-10 12:38:25 得分 2

man   gettimeofdayTop

9 楼tonyMCM(南京~上海)回复于 2006-03-10 13:40:39 得分 6

 
  跟头文件顺序没有关系。没加头文件时,没有time的原型,怎么调用都可以,C编译器不报错。有了原型声明就不行了,因为C不支持函数覆盖,所以报错了。  
   
   
  这位老师讲解的很详细了    
   
  就是这个原因    
   
  一开始不报错   不代表   你没有错  
   
  还是踏实点   看man   time    
  或者找本linux下   c函数大全,就可以节约你很多上网问问题的时间了  
   
   
  struct   timeval   nowit;  
   
  gettimeofday(&nowit,NULL);  
   
  Top

10 楼lanying(蓝鹰)(问个不休)回复于 2006-03-10 19:31:18 得分 1

ansi   c有函数原型的概念Top

相关问题

  • 请问time函数怎么使用?
  • Report Machine 的 Count函数怎么不好用?
  • 不好意思,请指教下,DLL里的函数到底怎么用
  • 关于time()函数
  • 请问,UNIX下的ctime(time_t *)函数的源码怎么找?
  • enumwindows函数怎么用?
  • 怎么用Shell_NotifyIcon函数
  • 函数指针怎么用?
  • 取整函数怎么写?
  • val函数怎么用啊!!

关键词

  • 函数
  • 文件
  • 原型
  • 报错
  • include
  • 顺序
  • time
  • 没有
  • man
  • main

得分解答快速导航

  • 帖主:myhaisky
  • phus
  • helios1688
  • fierygnu
  • fierygnu
  • fierygnu
  • tonyMCM
  • lanying

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo