\doxysubsubsection{Utils defines }
\hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s}{}\label{group___u_t_i_l_s___d_e_f_i_n_e_s}\index{Utils defines@{Utils defines}}


Общие вспомогательные макросы  


Collaboration diagram for Utils defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=262pt]{group___u_t_i_l_s___d_e_f_i_n_e_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}{Clear\+Struct}}(\+\_\+struct\+\_\+)
\begin{DoxyCompactList}\small\item\em Обнуление структуры. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}{Divide\+\_\+\+Up}}(\+\_\+val\+\_\+,  \+\_\+div\+\_\+)
\begin{DoxyCompactList}\small\item\em Деление с округлением вверх \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}{Byte\+Swap16}}(v)
\begin{DoxyCompactList}\small\item\em Swap between Little Endian and Big Endian. \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}{ABS}}(x)
\begin{DoxyCompactList}\small\item\em Абсолютное значение числа \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsubsection{Detailed Description}
Общие вспомогательные макросы 



\label{doc-define-members}
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be}\index{Utils defines@{Utils defines}!ClearStruct@{ClearStruct}}
\index{ClearStruct@{ClearStruct}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{ClearStruct}{ClearStruct}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gaf5e598848326d48e86167e5099a029be} 
\#define Clear\+Struct(\begin{DoxyParamCaption}\item[{}]{\+\_\+struct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{memset(\&(\_struct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_struct\_))}

\end{DoxyCode}


Обнуление структуры. 


\begin{DoxyParams}{Parameters}
{\em \+\_\+struct\+\_\+} & Структура, которую нужно обнулить.\\
\hline
\end{DoxyParams}
Макрос использует memset для обнуления всей памяти структуры. Используется для быстрой и безопасной инициализации переменных структур до нуля. 

Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00155}{155}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e}\index{Utils defines@{Utils defines}!Divide\_Up@{Divide\_Up}}
\index{Divide\_Up@{Divide\_Up}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{Divide\_Up}{Divide\_Up}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_gabf45f2b60eedf80cf9d1dbe4302a741e} 
\#define Divide\+\_\+\+Up(\begin{DoxyParamCaption}\item[{}]{\+\_\+val\+\_\+}{, }\item[{}]{\+\_\+div\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((\_val\_\ -\/\ 1)\ /\ \_div\_)\ +\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ через\ мат\ выражение\ */}}

\end{DoxyCode}


Деление с округлением вверх 


\begin{DoxyParams}{Parameters}
{\em \+\_\+val\+\_\+} & Делимое. \\
\hline
{\em \+\_\+div\+\_\+} & Делитель. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Результат деления, округленный вверх.
\end{DoxyReturn}
Если результат деления без остатка\+: он возвращается как есть Если с остатком -\/ округляется вверх 

Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00166}{166}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291}\index{Utils defines@{Utils defines}!ByteSwap16@{ByteSwap16}}
\index{ByteSwap16@{ByteSwap16}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{ByteSwap16}{ByteSwap16}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga0f22e895ac7781c3d1b68fee182c4291} 
\#define Byte\+Swap16(\begin{DoxyParamCaption}\item[{}]{v}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(((v\&0xFF00)\ >>\ (8))\ |\ ((v\&0x00FF)\ <<\ (8)))}

\end{DoxyCode}


Swap between Little Endian and Big Endian. 


\begin{DoxyParams}{Parameters}
{\em v} & Исходное 16-\/битное значение. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Результат с поменяными местами старшим и младшим байтом.
\end{DoxyReturn}
Переключения между двумя типами хранения слова\+: HI-\/\+LO байты и LO-\/\+HI байты. 

Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00174}{174}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

\Hypertarget{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759}\index{Utils defines@{Utils defines}!ABS@{ABS}}
\index{ABS@{ABS}!Utils defines@{Utils defines}}
\doxysubsubsubsubsection{\texorpdfstring{ABS}{ABS}}
{\footnotesize\ttfamily \label{group___u_t_i_l_s___d_e_f_i_n_e_s_ga996f7be338ccb40d1a2a5abc1ad61759} 
\#define ABS(\begin{DoxyParamCaption}\item[{}]{x}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\ ((x)\ >\ 0)?\ (x)\ :\ -\/(x))}

\end{DoxyCode}


Абсолютное значение числа 


\begin{DoxyParams}{Parameters}
{\em x} & Число. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Абсолютное значение числа x.
\end{DoxyReturn}
Берет число по модулю. Хз как работает библиотечный abs в stdlib.\+h, мб это быстрее, но вряд ли конечно. 

Definition at line \mbox{\hyperlink{mylibs__defs_8h_source_l00182}{182}} of file \mbox{\hyperlink{mylibs__defs_8h_source}{mylibs\+\_\+defs.\+h}}.

