3 * @brief 変愚蛮怒で新しく追加された主要なマクロ定義ヘッダ / Define some simple constants
9 #ifndef INCLUDED_H_DEFINE_H
10 #define INCLUDED_H_DEFINE_H
13 * The constants "TRUE" and "FALSE"
17 #define TRUE 1 /*!< コンパイル環境に定義がない場合のTRUE定義 */
20 #define FALSE 0 /*!< コンパイル環境に定義がない場合のFALSE定義 */
22 /**** Simple "Macros" ****/
24 #define lbtokg(x) ((int)((x)*5)) /*!< 変愚蛮怒基準のポンド→キログラム変換定義(全体) */
25 #define lbtokg1(x) (lbtokg(x)/100) /*!< 変愚蛮怒基準のポンド→キログラム変換定義(整数部) */
26 #define lbtokg2(x) ((lbtokg(x)%100)/10) /*!< 変愚蛮怒基準のポンド→キログラム変換定義(少数部) */
30 * Non-typed minimum value macro
33 #define MIN(a,b) (((a) > (b)) ? (b) : (a))
36 * Non-typed maximum value macro
39 #define MAX(a,b) (((a) < (b)) ? (b) : (a))
42 * Non-typed absolute value macro
45 #define ABS(a) (((a) < 0) ? (-(a)) : (a))
48 * Non-typed sign extractor macro
51 #define SGN(a) (((a) < 0) ? (-1) : ((a) != 0))
54 * Refer to the member at offset of structure
56 #define atoffset(TYPE, STRUCT_PTR, OFFSET) (*(TYPE*)(((char*)STRUCT_PTR) + (OFFSET)))