MST

星途 面试题库

面试题:Objective-C中可变参数方法定义及va_list基础使用

请在Objective-C中定义一个可变参数方法,该方法接受任意数量的整数参数,并计算这些整数的总和,在实现过程中需正确使用va_list相关宏。请写出完整的方法定义及实现代码。
14.4万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试
#import <Foundation/Foundation.h>

@interface Calculator : NSObject

+ (NSInteger)sumOfIntegers:(NSInteger)first,...;

@end

@implementation Calculator

+ (NSInteger)sumOfIntegers:(NSInteger)first,... {
    NSInteger sum = first;
    va_list args;
    va_start(args, first);
    NSInteger num;
    while ((num = va_arg(args, NSInteger))) {
        sum += num;
    }
    va_end(args);
    return sum;
}

@end

你可以这样调用这个方法:

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSInteger result = [Calculator sumOfIntegers:1, 2, 3, 4, 5, 0];
        NSLog(@"Sum is: %ld", (long)result);
    }
    return 0;
}