Новые книги

Лояльный покупатель – кто он и как сделать остальных потенциальных покупателей «лояльными»? Автор предлагаемой вниманию читателей книги исходит из убеждения, что только конкретное поведение и суммы, потраченные повторно на тот же товар или в том же месте, могут рассматриваться как измеримый и контролируемый параметр потребительского поведения. Заинтересованность только в непосредственном поведении и практически полное игнорирование «потенциальных» клиентов – такой подход автор считает наиболее эффективным.

В книге описывается механизм первичной и повторной покупок, приводятся методики по оценке факторов, влияющих на осведомленность покупателя о цене и его мотивацию. Автор также подробно рассматривает способы формирования устойчивого потребительского предпочтения.

В первую очередь книга будет полезна специалистам отделов продаж и поможет им вывести свою работу на новый уровень.
Представлены теоретико-концептуальные положения инновационного переоснащения факторов воспроизводства высокотехнологичных корпораций России. Предложены практические рекомендации по совершенствованию системы управления инновационными проектами и программами высокотехнологичных корпораций России в условиях глобальной конкуренции. Отдельные разделы посвящены анализу теорий инноваций и концепций инновационного развития. Определены базовые тенденции и на их основе закономерности перехода экономики на инновационный путь развития. Установлены базовые недостатки системы нормативно-правового регулирования инновационных преобразований факторов воспроизводства российской экономики. Разработаны стратегические ориентиры, уточняющие перспективы активизации системы управления инновационными программами в высокотехнологичных компаниях России.

Для научных работников, преподавателей вузов, аспирантов, студентов экономических специальностей, а также специалистов практиков в области стратегического и инновационного менеджмента.

Размещение объектов в памяти

5.5.3. Размещение объектов в памяти

Объекты, определенные в программе на языке C могут размещаться в памяти программы (статические глобальные объекты), в стеке (автоматически размещаемые локальные объекты), или в куче (динамические объекты). Время жизни статических объектов - это все время выполнения программы. Они используются для хранения глобальных переменных и констант, но при объектно-ориентированной разработке программ стараются использовать как можно меньше глобальных объектов, так как они нарушают модульную структуру программы. Глобальные объекты в языке C объявляются на внешнем уровне программного файла, вне составляющих его функций; инициализация таких объектов обычно производится при их порождении во время компиляции программы. Пример объявления статического (глобального) объекта:

	static struct Window outer_window = {0.0, 0.0, 8.5, 11.0};

При вызове методов, использующих объявленную глобальную переменную, им следует передавать ее адрес (&outer_window).

Промежуточные временные данные обычно размещаются в стеке. Удобство использования таких данных в том, что они размещаются в памяти и удаляются из нее автоматически. При этом программист сам должен следить, чтобы при выходе из блока не оставалось бы указателей на автоматические объекты этого блока, являющихся значениями объектов (или их частей), которые остаются в памяти после выхода из блока. Объекты, живущие дольше функций, в которых они порождаются, не следует размещать в переменных, автоматически размещаемых в стеке; это может привести к изощренным ошибкам в программе, которые очень трудно обнаружить.

Динамически размещаемые объекты необходимо использовать, когда во время компиляции программы неизвестно их количество. Такие объекты размещаются в куче по запросу (функции malloc или сalloc) во время выполнения программы. Будучи размещенным в памяти динамический объект сохраняется в ней до тех пор, пока не будет явным образом отменен (функция free). Пример функции размещения и инициализации динамического объекта:

	struct Window* create_window(xmin, ymin, width, height);
	Length xmin, ymin, width, height;
	{
	struct Window* window;
	/*размещение объекта*/
	window = (struct Window*)malloc(sizeof(struct Window));
	/*инициализация объекта*/
	window-> xmin = xmin;
	window-> ymin = ymin;
	window-> xmax = xmin + width;
	window-> ymax = ymin + height;
	return window;
	};

Перед удалением динамического объекта с помощью функции free необходимо удостовериться, что не осталось указателей на этот объект.

Назад | Содержание | Вперед