Я пытаюсь понять, как работает встроенное ключевое слово с указателями на переменные.
Рассмотрим следующий пример:
struct S
{
float a;
float b;
};
inline void foo (struct S *s)
{
s->a = 5;
}
void main()
{
struct S ss;
foo(&ss);
}
Когда компилятор встроит функцию foo, он сгенерирует
void main()
{
struct S ss;
(&ss)->a = 5;
}
Или это сгенерирует
void main()
{
struct S ss;
ss.a = 5;
}
Другими словами, нужно ли в коде отменить ссылку на указатель на структуру или он поймет, что его нужно заменить только структурой?
Во встроенном приложении это может привести к значительным изменениям во время выполнения.