 |
|

22.06.2009, 20:33
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
С нами:
10139366
Репутация:
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
|
|
|

22.06.2009, 21:19
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
Вижу что мало кто юзает данный способ по этому напишу правильный ответ сам )
Это директивы компилятора, которые на время могут менять выравнение структур.
Подефолту выравнение идет на 4 байта. т.е. если структура будет 9 байт, то выравнеется на 12.
#pragma pack(1) - выравнение 1 байт
#pragma pack() - дефолтовое выранение. вот и выходит код типа
#pragma pack(1)
struct .....
#pragma pack()
Последний раз редактировалось slesh; 22.06.2009 в 21:22..
|
|
|

22.06.2009, 21:22
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами:
10216668
Репутация:
930
|
|
Кстати, одним из решений другого задания (5) тоже были директивы и никто не написал 
Забыли их, бедняжек (
Added: перечитал пару статей: действительно, скорость при использовании прагм компилятора падает. Иногда значительно.
Последний раз редактировалось Fata1ex; 23.06.2009 в 09:05..
|
|
|

22.06.2009, 21:26
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
А вешь очень удобная для оптимизации работы программы.
А если писать свой клиент-сервер которые общаются по своему протоколу, то такое просто необходимо юзать для снижения трафа
|
|
|

22.06.2009, 21:28
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами:
10216668
Репутация:
930
|
|
Вообще это можно использовать не только в сетевых приложениях, а везде ) Лишних пару сэкономленных байт еще никому не мешали.
Added: перечитал пару статей: действительно, скорость при использовании прагм компилятора падает. Иногда значительно.
Последний раз редактировалось Fata1ex; 23.06.2009 в 09:06..
|
|
|

22.06.2009, 23:46
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
Кстати не всегда это делать желательно, потому как бываются случае что
адрес переменной должен быть выравнен на 4 байта иначе будет ошибка.
Такое встречается в некоторых WinAPI функцих которые просто убивают приложение если адрес буфера не выравненн на 4 байта
|
|
|

23.06.2009, 00:27
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
С нами:
10386906
Репутация:
599
|
|
это еще приводит к замедлению работы, ибо обращение к невыравненной ячейке памяти дает штраф
При этом различные процессоры по-разному подходят к адресации слов.
Во-первых, некоторые процессоры (PDP-11, SPARC) запрещают обращения к словам, адрес которых не кратен размеру слова, и генерируют при попытках такого обращения исключительную ситуацию ошибки шины. Другие процессоры, например VAX и х86 такие обращения разрешают, но в документации есть честное предупреждение, что обращения к невыровненным словам будут минимум в два раза медленнее, чем к выровненным (рис. 2.4).
|
|
|

23.06.2009, 09:04
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами:
10216668
Репутация:
930
|
|
Добавил несколько несложных задачек. Не решены задания 2, 9, 10, 11, 12, 13, 14.
С радостью выслушаю любые ваши предложения и замечания )
|
|
|

23.06.2009, 11:01
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
здание 12 хочу решить так ))
Код:
int a = 0;
char * k = str;
while (k[0])
{
a += k[0];
k++;
}
|
|
|

23.06.2009, 11:07
|
|
Постоянный
Регистрация: 12.12.2006
Сообщений: 906
С нами:
10216668
Репутация:
930
|
|
Нужно отредактировать исходный код )) Хотя твоя версия, безусловно, верна.
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
[PHP] ЗАДАНИЯ от Krist_ALL
|
Krist_ALL |
PHP |
205 |
30.11.2009 18:31 |
|
Задания
|
~Fenix~ |
Болталка |
11 |
13.05.2006 11:03 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|