У меня есть два вопроса:
1) Почему указатели на встроенные функции разрешены на С++? Я прочитал, что код встроенных функций просто копируется в оператор вызова функции, и в встроенных функциях отсутствует распределение памяти во время компиляции. Итак, почему указатель существует для встроенной функции, учитывая, что для встроенных функций нет фиксированного адреса памяти?
2) Рассмотрим приведенный ниже код:
inline void func()
{
int n=0;
cout<<(&n);
}
Должен ли он не печатать разные значения адреса n
каждый раз, когда вызывается func()
?
[Поскольку я думаю, что каждый раз, когда код встроенной функции копируется, необходимо выполнить перераспределение локальных переменных (тогда как в случае нормальных функций происходит повторная инициализация)]
Я новичок, и я задал этот вопрос ради укрепления моей концепции. Пожалуйста, поправьте меня, если я где-то не прав.