299 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,265
|
||||||
1 | ||||||
Что такое имя функции?27.07.2019, 16:04. Показов 16284. Ответов 45
Метки нет (Все метки)
скажите пожалуйста что такое имя функции?
создаю указатель на функцию
0
|
27.07.2019, 16:04 | |
Ответы с готовыми решениями:
45
При вводе имени сообщить, что есть такое имя Что такое Функции в C++ Что такое файловый буфер? Что такое режим (модификатор) доступа, при работе с файлами? Что такое виртуальные функции? |
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
|
||||||
27.07.2019, 23:32 | 42 | |||||
Кстати, интересно заметить, что благодаря такому неявному преобразованию возможно делать вот такое:
0
|
299 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,265
|
||||||||||||||||
28.07.2019, 00:07 [ТС] | 43 | |||||||||||||||
нет. под именем функции я в данном случае понимаю вот это
Добавлено через 50 секунд
что тут значит .LFB0 ? может так пойму
0
|
698 / 140 / 57
Регистрация: 20.08.2017
Сообщений: 255
|
||||||||||||||||||||||||||
28.07.2019, 00:49 | 44 | |||||||||||||||||||||||||
Сообщение было отмечено pcmax как решение
Решение
Следи за рукой.
foo — это function designator expression. При использовании почти в любых контекстах function designator expression преобразуется в non-lvalue указатель на эту функцию. В данном случае это неявное преобразование имеет место быть. Так что можешь считать, что «имя функции» — это function designator expression (но также и идентификатор).Вот это:
Добавлено через 4 минуты Это метка в языке ассемблера. Добавлено через 16 минут Вообще, как мне кажется, тебя интересует совсем другой вопрос: «Что вообще такое функция?». Смотри, допустим, у нас есть массив swap :
Мы можем использовать этот массив как функцию!
temp в сегменте кода (возможно) и передаст управление на начало этого сегмента. Т. е. грубо говоря, функция — это просто набор инструкций с инструкцией ret в конце (_Noreturn не рассматриваем). В конце выполнения функции (этого набора инструкций) управление передастся обратно в вызывающий код. Таким образом, указатель на функцию — это просто адрес первой инструкции этой функции (в ассемблерном коде такие адреса как раз и обозначаются метками).Тоже самое мы могли бы написать как:
2
|
299 / 74 / 7
Регистрация: 29.01.2018
Сообщений: 1,265
|
|
28.07.2019, 03:03 [ТС] | 45 |
вроде понял... спасибо
0
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
|
28.07.2019, 22:08 | 46 |
О том, что function-to-pointer conversion не применяется буквально написано в следующем за процитированным предложении...
https://timsong-cpp.github.io/... -specifier
2
|
28.07.2019, 22:08 | |
28.07.2019, 22:08 | |
Помогаю со студенческими работами здесь
46
Что такое обертка функции? Что такое ссылки на функции? Что такое прототип функции? Что такое рекурсивный тип данных? Что такое конструкция рекурсивного типа? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |