Форум программистов, компьютерный форум CyberForum.ru

Определить формат последовательности параметров функции и написать к ней вызов с фактическими параметрами - C++

Восстановить пароль Регистрация
 
DenSyntax
0 / 0 / 0
Регистрация: 22.06.2010
Сообщений: 3
22.06.2010, 16:02     Определить формат последовательности параметров функции и написать к ней вызов с фактическими параметрами #1
Пример оформления тестового задания.

Определите формат последовательности параметров функции и напишите ее вызов с фактическими параметрами – константами.

C++
1
2
3
4
5
6
7
8
//----------------------------------------------------92-08.cpp
double F(int a1,...)                                  // Первый параметр - счетчик цикла
{ int i,n;
double s,*q=(double*)(&a1+1);                 // Указатель на второй и последующие
for (s=0, n=a1; n!=0; n--)             // параметры - типа double*
s += *q++;                                // Сумма параметров, начиная
return s;}                                               // со второго
void main() { printf("%lf\n",F(3,1.5,2.5,3.5)); }
Указатель q типа double* ссылается на второй параметр функции (первый из переменного списка) - &a1+1 – указатель на область памяти, «следующую за…». Первый параметр используется в качестве счетчика повторений цикла, цикл суммирует значения, последовательно извлекаемые из-под указателя q. Результат – функция суммирует вещественные переменные из списка, предваренного целым счетчиком.

Сами функции:
C++
1
2
3
4
5
6
//--------------------------------------------------------6
char *F6(char *p,...)
{ char **q; int i,n;
for (i=0, n=0, q = &p; q[i] !=NULL; i++)
     if (strlen(q[i]) > strlen(q[n])) n=i;
return q[n]; }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//--------------------------------------------------------8
union xx { int *pi; long *pl; double *pd; };
double F8(int p,...)
{ union xx ptr;
double dd=0;
for (ptr.pi = &p; *ptr.pi != 0; )
           {
        switch(*ptr.pi++) {
 case 1: dd+= *ptr.pi++; break;
 case 2: dd+= *ptr.pl++; break;
 case 3: dd+= *ptr.pd++; break;
        }}
return dd;}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2010, 16:02     Определить формат последовательности параметров функции и написать к ней вызов с фактическими параметрами
Посмотрите здесь:

Как определить вызов функции API C++
C++ Есть общая структура программы, как правильно (написать)определить функции к ней?
Написать перегружаемые функции умножения разного количества параметров C++
Удаленный вызов программы с параметрами C++
Вызов функции с теми же параметрами, что и main C++
C++ Вызов функции с неопределенным количеством параметров
C++ Вызов функции с не заданными параметрами из объекта класса
Асинхронный вызов метода с параметрами C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 20:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru