HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #31  
Старый 22.06.2009, 20:33
desTiny
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме:
3008839

Репутация: 1502


По умолчанию

Цитата:
Сообщение от slesh  
2 desTiny Это правильный, но некрасивый способо. Есть более красивый и удобный)
разумеется, он убогий) как и вся идея сожрать 4 байта

Кстати, мой VS сказал про него "8 байт". и про такое тоже:
Код:
struct _REC
 {
		 unsigned short a,b,z;
	 	 bool c:1,d:1,e:1,f:1,g:1;
} REC;
__________________
Bedankt euch dafür bei euch selbst.

H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
 

  #32  
Старый 22.06.2009, 21:19
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Вижу что мало кто юзает данный способ по этому напишу правильный ответ сам )
Это директивы компилятора, которые на время могут менять выравнение структур.
Подефолту выравнение идет на 4 байта. т.е. если структура будет 9 байт, то выравнеется на 12.
#pragma pack(1) - выравнение 1 байт
#pragma pack() - дефолтовое выранение. вот и выходит код типа

#pragma pack(1)
struct .....
#pragma pack()

Последний раз редактировалось slesh; 22.06.2009 в 21:22..
 

  #33  
Старый 22.06.2009, 21:22
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Кстати, одним из решений другого задания (5) тоже были директивы и никто не написал
Забыли их, бедняжек (
Added: перечитал пару статей: действительно, скорость при использовании прагм компилятора падает. Иногда значительно.

Последний раз редактировалось Fata1ex; 23.06.2009 в 09:05..
 

  #34  
Старый 22.06.2009, 21:26
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

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

  #35  
Старый 22.06.2009, 21:28
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Вообще это можно использовать не только в сетевых приложениях, а везде ) Лишних пару сэкономленных байт еще никому не мешали.
Added: перечитал пару статей: действительно, скорость при использовании прагм компилятора падает. Иногда значительно.

Последний раз редактировалось Fata1ex; 23.06.2009 в 09:06..
 

  #36  
Старый 22.06.2009, 23:46
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

Кстати не всегда это делать желательно, потому как бываются случае что
адрес переменной должен быть выравнен на 4 байта иначе будет ошибка.
Такое встречается в некоторых WinAPI функцих которые просто убивают приложение если адрес буфера не выравненн на 4 байта
 

  #37  
Старый 23.06.2009, 00:27
Ra$cal
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме:
1354067

Репутация: 599


По умолчанию

это еще приводит к замедлению работы, ибо обращение к невыравненной ячейке памяти дает штраф

Цитата:
При этом различные процессоры по-разному подходят к адресации слов.
Во-первых, некоторые процессоры (PDP-11, SPARC) запрещают обращения к словам, адрес которых не кратен размеру слова, и генерируют при попытках такого обращения исключительную ситуацию ошибки шины. Другие процессоры, например VAX и х86 такие обращения разрешают, но в документации есть честное предупреждение, что обращения к невыровненным словам будут минимум в два раза медленнее, чем к выровненным (рис. 2.4).
 

  #38  
Старый 23.06.2009, 09:04
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Добавил несколько несложных задачек. Не решены задания 2, 9, 10, 11, 12, 13, 14.
С радостью выслушаю любые ваши предложения и замечания )
 

  #39  
Старый 23.06.2009, 11:01
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

здание 12 хочу решить так ))

Код:
int a = 0;
char * k = str;
while (k[0])
 {
   a += k[0];
   k++;
 }
 

  #40  
Старый 23.06.2009, 11:07
Fata1ex
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
Провел на форуме:
4205500

Репутация: 930


По умолчанию

Нужно отредактировать исходный код )) Хотя твоя версия, безусловно, верна.
 
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задания ~Fenix~ Болталка 11 13.05.2006 11:03



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ