● 実行速度について - 乗除算を避ける・変更する

結果が変わらない乗除算を避ける

etc.

これらは、設計段階で結果が判っているはずなので、速度効率を改善するつもりなら、上記のような乗除算の使用を避けるべきです。計算手順をソースコード上で明確にしておきたい場合は、コメント文がその役割を十分果たします。

FIXEDVAL値のゼロを作成する場合、0 × x や 0 ÷ xxxx x 等の演算よりも、memset で普通にゼロクリアした方が効率的です。また、1 を作成する場合は、定数をコピーする処理にした方が効率的です。
int     function(PFIXEDVAL pval)
{
    static FIXEDVAL     const_1[SIZE] = { 1 };

    memcpy(pval,const_1,SIZE);

               ・
               ・
               ・
定数は、グローバルか静的領域にします。スタックにすると、関数が実行される度に初期化を行うので、非効率的です。


0 、1 以外の定数作成には、次のようなツールがあると便利です。
参考.FIXEDVAL定数作成ツール

#include <stdio.h>
#include "fixedX.h"

#define BIT             数値幅(bit)
#define SIZE            (BIT / 8)

#define PARAM_NAME      "変数名"

void    main(void )
{
    FIXEDVAL        val[SIZE];
    int             i;

    fixed_atoui(val,SIZE,"数値");

    printf("FIXEDVAL\t\t"PARAM_NAME"[] = {\n\t");
    for(i = 0;i < SIZE;i++){
        printf("0x%X",val[i]);
        if (i != SIZE - 1) printf(",");
    }
    printf("\n};\n");
}