如何在C中使用可选参数创建函数?
发布时间:2020-12-16 03:39:31 所属栏目:百科 来源:网络整理
导读:最近我在编写文件打开程序时遇到了一个问题. 让我清楚地解释一下我的问题.我在这里以公开电话为例. 要创建文件: open("file_name",O_CREAT,0766); //passing 3 parametrs 要打开文件: open("file_name",O_RDWR); //only 2 arguments. 然后我清楚地观察到了
最近我在编写文件打开程序时遇到了一个问题.
让我清楚地解释一下我的问题.我在这里以公开电话为例. 要创建文件: open("file_name",O_CREAT,0766); //passing 3 parametrs 要打开文件: open("file_name",O_RDWR); //only 2 arguments. 然后我清楚地观察到了这一点,它也适用于main(). main(void) //worked main(int argc,char **argv); //worked main(int argc) //worked and it's doesn't give an error like "too few arguments". main() //worked 那么我们如何创建这些可选参数呢?编译器如何验证这些原型?如果可能,请编写示例程序. 解决方法
open函数声明为可变参数函数.它看起来像这样:
#include <stdarg.h> int open(char const * filename,int flags,...) { va_list ap; va_start(ap,flags); if (flags & O_CREAT) { int mode = va_arg(ap,int); // ... } // ... va_end(ap); } 除非您已表明它们确实存在,否则不会消耗其他参数. printf使用相同的结构. 手册并不总是明确这一点,因为唯一可能的两个签名是(char const *,int)和(char const *,int,int),所以揭示你的函数实际上接受变量参数是没有意义的. (你可以通过尝试编译像open(“”,1,2,3,4,5,6)这样的东西来测试它.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |