您的位置:程序门 -> linux/unix社区 -> 程序开发区



c语言也能重载函数? 怎么解释。unix编程的open函数。


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


c语言也能重载函数? 怎么解释。unix编程的open函数。[已结贴,结贴人:cryincold]
发表于:2007-09-01 17:22:28 楼主
$   man   2   open

              int   open(const   char   *pathname,   int   flags);
              int   open(const   char   *pathname,   int   flags,   mode_t   mode);

函数名一样,但参数列表不一样啊~~   怎么解释啊。
c语言不可以这样啊。

于是写了两个函数:
void   fn(int   al){;}
void   fn(int   al,   int   ar){;}

编译时就报函数名冲突的错啦。
发表于:2007-09-01 17:45:201楼 得分:30
原型是int   open(const   char   *pathname,   int   oflag...,[     mode_t   mode   ]);  

第3个参数写为...,这是ansi   c说明余下参数的数目和类型可以变化的方法。      
发表于:2007-09-01 17:50:252楼 得分:0
能。搞定了。     翻了一下   c   programming   language   2nd

用   va_start,   va_end,   va_arg   这三个宏和   va_list   结构搞定。
发表于:2007-09-01 18:05:203楼 得分:0
main(int   argc,   int**   argv)就像这个一样,也是通过va_start,va_end那些实现的。


快速检索

最新资讯
热门点击