1/* Contributed by Nicola Pero - Thu Mar 8 16:27:46 CET 2001 */ 2#include <objc/objc.h> 3#include <stdarg.h> 4 5/* Test method with variable number of arguments */ 6 7@interface MathClass 8{ 9 Class isa; 10} 11/* sum positive numbers; -1 ends the list */ 12+ (int) sum: (int)firstNumber, ...; 13@end 14 15@implementation MathClass 16+ (int) sum: (int)firstNumber, ... 17{ 18 va_list ap; 19 int sum = 0, number = 0; 20 21 va_start (ap, firstNumber); 22 number = firstNumber; 23 24 while (number >= 0) 25 { 26 sum += number; 27 number = va_arg (ap, int); 28 } 29 30 va_end (ap); 31 32 return sum; 33} 34+ initialize { return self; } 35@end 36 37int main (void) 38{ 39 if ([MathClass sum: 1, 2, 3, 4, 5, -1] != 15) 40 { 41 abort (); 42 } 43 44 return 0; 45} 46