14 / 14 / 3
Регистрация: 03.03.2011
Сообщений: 435
|
||||||||||||||||
1 | ||||||||||||||||
Макрос выводящий имя функции, список аргументов и тип возвращаемого значения29.11.2018, 13:56. Показов 6088. Ответов 12
Метки нет (Все метки)
Привет всем читающим!
Помогите решить задачу: Создать файл h с объявлениями функций с разными списками аргументов и разными типами возвращаемых значений. Создать файл cpp, подключить h с объявлениями функций и определить все функции. Каждое определение должно выводить имя функции, список аргументов и тип возвращаемого значения. Создать файл cpp с функцией main, подключить в него h и вызвать в main все функции. Наверное всё это надо сделать через макрос препроцессора, я пока вот так написал: func.h
0
|
29.11.2018, 13:56 | |
Ответы с готовыми решениями:
12
Тип возвращаемого значения функции Функции (вызов и тип возвращаемого значения) Тип возвращаемого значения не соответствует типу функции Является ли тип возвращаемого значения частью сигнатуры функции? |
571 / 353 / 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
|
1562 / 481 / 105
Регистрация: 17.05.2015
Сообщений: 1,461
|
||||||
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
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
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
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
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
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
29.11.2018, 14:50 | 10 |
Ну вот в данном случае ничего тут кроме не определённого нету. Потому что скомпилированная функция - это всего лишь небольшой кусочек исполняемого файла с командами процессору, никак не помеченный, и отличающийся от других только адресом.
0
|
1562 / 481 / 105
Регистрация: 17.05.2015
Сообщений: 1,461
|
||||||
29.11.2018, 14:52 | 11 | |||||
https://rextester.com/LQHGOS25139
1
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
|
|
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 | |
29.11.2018, 14:59 | |
Помогаю со студенческими работами здесь
13
Почему в функции operator не ставят тип возвращаемого значения? Почему у функции main() тип возвращаемого значения - int? Почему тип входящего параметра функции может отличаться от типа возвращаемого значения? Как определить тип возвращаемого значения шаблонной функции по типу итератора (не auto)? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |