выделение и освобождение памяти в стеке это изменение одного регистра, один такт.
Мы с вами говорим об совсем разных сущностях.
Между ними есть биекция.
В чем разница?
Число операций для доступа к 'a' в обоих случаях одинакого.
struct stack
{
char *data;
struct stack *next;
};
Просто взгялнув на строчку кода нельзя дать однозначный ответ в какой физический регистр будет осуществен доступ.
Т.е. когда вы будете в куче выделять память, то оверхеда не будет?
Что бы достать значение из стека не обязательно доставать элементы по очереди.
Ни одна команда или микрокоманда не может быть исполнена менее чем за 1 такт.
Раз это такая же память, то как получить адрес регистра?
О каком оверхеде вы говорите?
Вы о каком стеке говорите то?
Я знаю что такое микрокод.
Куда уж быстрее, чем один такт? Полтакта? Компьютеры так не работают.
Что простите? Ассемблер это просто человекочитаемый машинный код.
Каждая строчка на ассемблере однозначно кодируется машинной командой с точностью до смещений.
Вы так и не объяснили, почему большой стек медленнее маленького?
Какие ваши доказательства?
Один такт это одно переключение транзистора.
Как можно сделать какую-то работу, не переключив ничего?
Куда уж быстрее, чем один такт?
Полтакта? Компьютеры так не работают
чем больше стек, тем он медленнее
Это на порядки быстрее кучи.
Оказывается не нужно быть профессором высшей математики, чтобы получить ответ на этот вопрос.
Следуя моей логики нужно использовать дискриминант для решения квадратных уравнений, а не изучать его теорию и доказательство.
чтобы чередовалась работа потоков. В консоли должно выводиться по очереди
ReaderFunction();
WriterFunction();
ReaderFunction();
WriterFunction();
...
ReaderFunction(){
while(!CanRead) sleep(1);
read();
CanRead=false;}
ополнительные коммутаторы + шкафы+ ИБП стоят дороже нескольких КМ витухи
опорную сеть уже на оптике
обслуживать один узел агрегации проще чем сеть из узлов
телефонию аналоговую вы уже не пустите просто никак
Именно, речь идет об оверхеде. Он есть в ассемблере. Точнее: утверждение, что любой ассемблер для любого процессора любой архитектуры даёт биекцию между командами и опкодами, неверно. Это утверждение опровергается контрпримером. В качестве контрпримера можно использовать виртуальную машину.