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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Extro
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 31
#1

Функция с переменным числом параметров. Преобразование типов - C++

19.04.2014, 11:48. Просмотров 322. Ответов 7
Метки нет (Все метки)

Добрый день.
Проходил недавно тест на собеседовании, довольно странный, на мой взгляд, был вопрос:

Есть функция
void f(const char* txt, ...);

Аргумент, переданный в функция, типа float будет преобразован в:
1) void*.
2) char*.
3) char.
4) double.
5) int.

Мне кажется, что вопрос не корректен, потому что первый аргумент не может быть не *char, а последующие аргументы - это адреса в памяти, где хранятся значения аргументов.
Как ваше мнение? Какой ответ нужно было выбрать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.04.2014, 11:48     Функция с переменным числом параметров. Преобразование типов
Посмотрите здесь:

Функция с переменным числом параметров - C++
Написать функцию sum с переменным числом параметров, которая находит сумму заданных обыкновенных дробей. Написать вызывающую функцию main,...

Функция с переменным числом параметров - C++
Доброе время суток! Решил навести красивость в функции что бы по мимо возврата хеш суммы она еще и печатала она (а то там базу надо...

Функция с переменным числом параметров - C++
В функцию с переменным числом параметров поступают символы, конец списка - ноль-символ '\ 0'. Найти и вывести символ чаще всего...

Функция с переменным числом параметров - C++
Задача посчитать сокрытые сумму сокрытых аргументов ф-ции. #include<iostream> #include<conio.h> #include<stdarg.h> using namespace...

Функция с переменным числом параметров - C++
Функция с переменным числом параметров. Задание: Среднее арифметическое с елементов в списке параметров ,которые стоят на парных местах.

Функция с переменным числом параметров - C++
Написать функцию с переменным числом параметров, которая определяет количество чисел, являющихся точными квадратами (2, 4, 9, 16,. . . )...

В функция с переменным числом параметров. - C++
В функцию с переменным числом параметров поступают слова, конец списка - указатель NULL. Найти и вывести все слова, которые читаются...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
19.04.2014, 12:16     Функция с переменным числом параметров. Преобразование типов #2
Цитата Сообщение от Extro Посмотреть сообщение
Мне кажется, что вопрос не корректен, потому что первый аргумент не может быть не *char, а последующие аргументы - это адреса в памяти, где хранятся значения аргументов.
Как ваше мнение? Какой ответ нужно было выбрать?
А вот хз как этот макрос там реализован... Но что-то я больше всего склоняюсь что к char*, т.к. это наименьтый тип данных и следовательно из него можно привести в любой другой тип.
Extro
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 31
19.04.2014, 13:14  [ТС]     Функция с переменным числом параметров. Преобразование типов #3
А как на счет void*?
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
20.04.2014, 15:57     Функция с переменным числом параметров. Преобразование типов #4
Extro, ну и как шагать по стеку агрумантов функции с типом void?

Добавлено через 23 часа 14 минут
Цитата Сообщение от Extro Посмотреть сообщение
А как на счет void*?
Я не заметил, что const char* txt - это первый аргумент и он ни куда конвертироваться не должен...
Nick Alte
Эксперт С++
1628 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
20.04.2014, 17:31     Функция с переменным числом параметров. Преобразование типов #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В вопросе нет ничего странного, просто он предполагает знание того, как реализуется вызов функций и передача параметров. Как вообще, так и в случае переменного количества аргументов. Верный ответ - четвёртый, double.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.04.2014, 19:20     Функция с переменным числом параметров. Преобразование типов #6
Nick Alte, в случае эллипсиса понятно: http://stackoverflow.com/questions/1...ork-with-float
Но в общем случае, с чего бы в функции:
C++
1
void f( float a );
Аргументу преобразовываться в double?
Nick Alte
Эксперт С++
1628 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,931
Завершенные тесты: 1
20.04.2014, 19:33     Функция с переменным числом параметров. Преобразование типов #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Tulosba Посмотреть сообщение
Но в общем случае, с чего бы
В исходном вопросе речь идёт как раз про функцию с эллипсисом. Об "общем случае" там и речи не идёт. А то можно, конечно, расширить подход и рассмотреть, например, Фортран с его вещественными числами с настраиваемой точностью. Вот только зачем? Спрашивают - отвечаем. Если придирка к моим словам о том, что надо знать о реализации вызовов вообще, то они вовсе не означают, что float преобразуется всегда, в виду имелся сам принцип передачи параметров на стеке и его очистки.
Кстати, о птичках. Нередко бывает, что в вычислениях float неявно "повышается" до double, что изредка может привести к занятным эффектам.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.04.2014, 12:04     Функция с переменным числом параметров. Преобразование типов
Еще ссылки по теме:

Функция sum с переменным числом параметров - C++
помогите с кодом,задание:Написать функцию sum с переменным числом параметров, которая находит сумму чисел типа int. Написать вызывающую...

Функция с переменным числом параметров (задание) - C++
Максимальный из элементов в списке параметров, стоящих на четных местах(условие)

программа и функция с переменным числом параметров - C++
Реализовать функцию с переменным числом параметров. Параметрами являются символы, которые определяют, какие функции должны быть выполнены....

Функция min с переменным числом параметров - C++
Напишите функцию min с переменным числом параметров, которая находит минимальное среди чисел типа int или среди чисел типа double, тип...

Функция с переменным числом параметров Va_arg - C++
Нужно посчитать количество слов в каждой строке ... va_arg(arg_list , char) не переключает на другой параметр , я не могу обработать...


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

Или воспользуйтесь поиском по форуму:
Extro
0 / 0 / 0
Регистрация: 11.06.2012
Сообщений: 31
21.04.2014, 12:04  [ТС]     Функция с переменным числом параметров. Преобразование типов #8
Nick Alte, спасибо за ответ, ваши знания впечатляют.
Yandex
Объявления
21.04.2014, 12:04     Функция с переменным числом параметров. Преобразование типов
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru