C 语言 可变参数函数

发布于 2024-04-01 09:13:39 字数 913 浏览 18 评论 0

我们在用 python 的时候,可以提供可变参数的形式:

# python
def task(self, jsonDatas, *args, **kwargs):
	.....

因为 Python 是 C 写的,那么 C 也有可变参数,参数数量可变的函数被成为:可变参数函数

#include <stdio.h>
#include <stdarg.h>     # need it

void print_ints(int args, ...) {
    // args: 参数个数
    va_list ap;             // va_list 用来保存传给函数的其他参数。
    va_start(ap, args);
    
    for(int i=0; i<args; i++) {
        printf("argument:%i\n", va_arg(ap, int));   // va_arg 逐行读取 va_list 保存的其他参数,接收两个参数:va_list 和参数类型
    }
    
    va_end(ap);     // 当读完了所有参数,要用 va_end 宏告诉 C 你做完了
}
int main(int argc, char *argv[]) {
    print_ints(4, 1, 2, 3, 4);
    return 0;
}

输出结果:

argument:1
argument:2
argument:3
argument:4

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

温馨耳语

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

13886483628

文章 0 评论 0

流年已逝

文章 0 评论 0

℡寂寞咖啡

文章 0 评论 0

笑看君怀她人

文章 0 评论 0

wkeithbarry

文章 0 评论 0

素手挽清风

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文