Имеет ли доступ к полям, находящимся в глубине структуры, дополнительное время (инструкции по сборке) или же эти ячейки памяти жестко закодированы компилятором? Я хотел бы логически держать определенные вещи вместе в структуре, но хочу понять, могу ли я принять удар по производительности из-за этого.Получает ли доступ к полям в структуре больше времени?
Например, в следующем коде есть запись в s.c.d
любой медленной, чем запись в d2
?
typedef struct a_struct_tag {
uint8_t d;
} a_struct_t;
typedef struct my_struct_tag {
uint8_t a;
uint8_t b[8];
a_struct_t c;
} my_struct_t;
int main()
{
my_struct_t s;
s.c.d = 3;
a_struct_t d2;
d2.d = 4;
}
Почему вы не смотрите на выходную сборку? Кроме того, вы могли бы запускать некоторые простые тесты самостоятельно – UnholySheep
Я бы сомневался, что любая «разница» в производительности (здесь есть) перевешивает любые вызовы IO/Database/Network или сложную математику, которую вы могли бы иметь. – crashmstr