14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
|
||||||||||||||||
1 | ||||||||||||||||
Макрос выводящий имя функции, список аргументов и тип возвращаемого значения29.11.2018, 13:56. Показов 4893. Ответов 12
Метки нет Все метки)
(
Привет всем читающим!
Помогите решить задачу: Создать файл h с объявлениями функций с разными списками аргументов и разными типами возвращаемых значений. Создать файл cpp, подключить h с объявлениями функций и определить все функции. Каждое определение должно выводить имя функции, список аргументов и тип возвращаемого значения. Создать файл cpp с функцией main, подключить в него h и вызвать в main все функции. Наверное всё это надо сделать через макрос препроцессора, я пока вот так написал: func.h
0
|
|
29.11.2018, 13:56 | |
Ответы с готовыми решениями:
12
Тип возвращаемого значения функции
Тип возвращаемого значения не соответствует типу функции
|
570 / 352 / 133
Регистрация: 15.09.2017
Сообщений: 1,239
|
|
29.11.2018, 14:02 | 2 |
Насколько я вижу, вы выполнили всё правильно. Зачем вам макрос?
0
|
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
|
||||||
29.11.2018, 14:16 [ТС] | 3 | |||||
Это задача из книги Эккель Философия С++ 1 том, 1 задача на 162 стр.
И там до этого вывод имени функции был через макрос
0
|
1354 / 381 / 84
Регистрация: 17.05.2015
Сообщений: 1,270
|
||||||
29.11.2018, 14:17 | 4 | |||||
https://rextester.com/TNVNE50561
1
|
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
|
|
29.11.2018, 14:20 [ТС] | 5 |
0
|
зомбяк
1565 / 1214 / 345
Регистрация: 14.05.2017
Сообщений: 3,936
|
|
29.11.2018, 14:26 | 6 |
Leningradeс, парсингом. Компилятор записывает в __PRETTY_FUNCTION__/__FUNCSIG__/__FUNCTION__ строковый литерал, с которым делай что нужно.
0
|
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
|
|
29.11.2018, 14:32 [ТС] | 7 |
0
|
зомбяк
1565 / 1214 / 345
Регистрация: 14.05.2017
Сообщений: 3,936
|
|
29.11.2018, 14:39 | 8 |
И какие тут азы? http://gcc.gnu.org/onlinedocs/... acros.html
Добавлено через 2 минуты https://gcc.gnu.org/onlinedocs... acros.html https://gcc.gnu.org/onlinedocs... acros.html
0
|
14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
|
||||||
29.11.2018, 14:45 [ТС] | 9 | |||||
Это я так понимаю "Предопределенные макроподстановки", а азы это самостоятельно написать макрос который делает тоже самое что и предопределенные, только как мне удобнее.
Вот пример рабочего макроса Эккеля для вывода имени функции по указателю.
0
|
зомбяк
1565 / 1214 / 345
Регистрация: 14.05.2017
Сообщений: 3,936
|
|
29.11.2018, 14:50 | 10 |
Ну вот в данном случае ничего тут кроме не определённого нету. Потому что скомпилированная функция - это всего лишь небольшой кусочек исполняемого файла с командами процессору, никак не помеченный, и отличающийся от других только адресом.
0
|
1354 / 381 / 84
Регистрация: 17.05.2015
Сообщений: 1,270
|
||||||
29.11.2018, 14:52 | 11 | |||||
https://rextester.com/LQHGOS25139
1
|
зомбяк
1565 / 1214 / 345
Регистрация: 14.05.2017
Сообщений: 3,936
|
|
29.11.2018, 14:54 | 12 |
Какого "вывода имени функции"? Это макросовое генерирование функций с именем, которое совпадает со строковым литералом в сгенерированной функции. То есть в контексте задания вообще бесполезное.
0
|
![]() ![]() |
|
29.11.2018, 14:59 | 13 |
https://www.cyberforum.ru/blogs/18334/blog100.html
Добавлено через 2 минуты __PRETTY_FUNCTION__ - это НЕ предопределённый макрос. Это некая конструкция языка, которую может построить только компилятор, не не может построить пользователь. Не знаю, каким правильным термином это называется. Сюда относятся __FILE__, __LINE__, __DATE__, __TIME__, ещё какие-то А предопределённые макросы по смыслу эквивалентны тому, что в самом начале файла воткнуты соответствующие #define'ы
1
|
29.11.2018, 14:59 | |
Помогаю со студенческими работами здесь
13
Почему в функции operator не ставят тип возвращаемого значения?
Почему тип входящего параметра функции может отличаться от типа возвращаемого значения?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |