void main()
{ cout<<"\n Yigindi(2,6,4)="<
cout<<"\n Yigindi(6,1,2,3,4,5,6)=";
cout<
int Yigindi(int k,...)
{ int *ptr=&k int s=0;
for(;k;k--)s+=*(++ptr);
return s;
}
Натижа:
Yigindi(2,6,4)=10 Yigindi(6,1,2,3,4,5,6)=21
Иккала мисолда ҳам номаълум параметрлар берилган махсус параметр турини қабул қилган. Ҳар хил турдаги параметрларни ишлатиш учун турни аниқлайдиган параметр киритиш керак:
#include
#include
using namespace std;
float Summa(char,int,...);
int main()
{ cout<
cout<
cout<
} int Summa(char z,int k,...) {
switch(z)
{ case 'i': {
int *ptr=&k+1; int s=0;
for(;k--;ptr++)s+=*(ptr);
return (float)s;
} case 'f': {
float*ptr=(float *)(&k+1);
float s=0.0;
for(;k--;ptr++)s+=*(ptr);
return s; }
default: {
cout<<"\n Parametr xato berilgan";
return 9999999.0;
} } }
Юқорида келтирилган мисолда номаълум параметрларни турини аниқлаш масаласи компилятор томонидан эмас, балки дастур тузувчиси томонидан ҳал қилинган.
Do'stlaringiz bilan baham: |