当前位置: 技术问答>linux和unix
c语言也能重载函数? 怎么解释。unix编程的open函数。
来源: 互联网 发布时间:2016-02-08
本文导语: $ man 2 open int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 函数名一样,但参数列表不一样啊~~ 怎么解释啊。 c语言不可以这样啊。 于是写了两个函数...
$ 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){;}
编译时就报函数名冲突的错啦。
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){;}
编译时就报函数名冲突的错啦。
|
原型是int open(const char *pathname, int oflag...,[ mode_t mode ]);
第3个参数写为...,这是ANSI C说明余下参数的数目和类型可以变化的方法。
第3个参数写为...,这是ANSI C说明余下参数的数目和类型可以变化的方法。