美文网首页
iOS-函数带可变参数

iOS-函数带可变参数

作者: 鹿港小镇betterman | 来源:发表于2020-04-14 17:06 被阅读0次
其中NS_REQUIRES_NIL_TERMINATION作用是提醒在参数列表末尾加上nil。
+ (int)add:(int)param,... NS_REQUIRES_NIL_TERMINATION{
    //用于声明一个变量,我们知道函数的可变参数列表其实就是一个字符串,
    //所以va_list才被声明为字符型指针,这个类型用于**声明一个指向个数可变的参数列表的字符型指针变量。
    va_list args;
    //初始化前面定义的va_list变量,让指针一开始指向首个参数。args--我们之前定义的偏移指针 param--参数列表的第一个参数。
    va_start(args, param);
    int sum = param;
    int num;
    for ( ; ; ) {
        //函数的作用是根据指针进行取值,取出值以后返回,并且指针偏移一位,
        //所以可以进行一个循环,通过va_arg不停的移动指针,依次取出后面的参数。
        num = va_arg(args, int);
        printf("va_arg(args, int) === %d\n",num);
        if (!num) {
            break;
        }else{
            sum += num;
        }
    }
    //清空参数列表,并置参数指针args无效,结束参数的获取
    va_end(args);
    return sum;
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        printf("参数之和为 == %d\n",[self add:5,5,6,7, nil]);
    }
    return 0;
}

相关文章

  • iOS-函数带可变参数

  • 12. 可变参数函数

    12. 可变参数函数 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法 如果函数最后一个参数被记作...

  • ★10.关于可变参数模板

    可变参数函数模板 可变参数类模板 可变参数函数模板的使用 转发参数包

  • Go语言可变参数

    可变参数 参数数量可变的函数称为可变参数函数 在声明可变参数函数时,需要在参数列表的最后一个参数类型之前加上省略符...

  • Go基础语法(四)

    可变参数函数 可变参数函数是一种参数个数可变的函数。 如果函数最后一个参数被记作 ...T ,这时函数可以接受任意...

  • Lua可变参数

    Lua 函数可以接受可变数目的参数,和 C 语言类似,在函数参数列表中使用...表示函数有可变的参数。 把可变参数...

  • Python 函数

    调用函数 定义函数 函数的参数必选参数、默认参数、可变参数、关键字参数、命名关键字参数 位置参数 默认参数 可变参...

  • Golang 系列教程 第 12 部分,可变参数函数

    欢迎来到 Golang 系列教程 第 12 部分 什么是可变参数函数 可变参数函数是一种参数个数可变的函数。 语法...

  • 函数的定义及参数详解

    如何去定义一个函数: 位置参数:(不传就报错) 带默认参数的函数:(位置参数必传,默认参数不传取默认值) 可变参数...

  • Go教程第九篇:可变参数函数

    可变参数函数 欢迎来到《Golang系列教程》的第九篇文章---可变参数函数。 什么是可变参数函数 ? 通常情况下...

网友评论

      本文标题:iOS-函数带可变参数

      本文链接:https://www.haomeiwen.com/subject/aemtvhtx.html