Программирование на языке высокого уровня. Марапулец Ю.В. - 188 стр.

UptoLike

Составители: 

Приложение
Оптимизация программ на языке С++
Уменьшение времени доступа в память.
1. Групповое присваивание:
использование а=b=1;
вместо а=1; b=l;
2.
Использование оператора присваивания в условии:
if ((c=getchar())!=EOF)
{ }
вместо
c=getchar();
if (c!=EOF)
{...}
3.
Использование условного оператора:
а=(х0)?х:х+1;
вместо
if (x0)
а=х;
else a=x+1;
4.
Использование операции сдвига при умножении на степень 2:
i=(j<<3)+j; // j*8+j
вместо
i=j*9;
5.
Использование операций ++, −−, +=, =:
mas [i+2] ++;
вместо
mas [i+2] =mas [i+2] +1;
Преобразования типов. Следует отметить, что наиболее быстро выполняются
операции, не связанные с преобразованием типа. Например, аргументы вещественного
типа в выражениях при вычислении преобразуются в тип double. Поэтому, если они уже
описаны как double, то программа будет работать быстрее. Также необходимо обратить
внимание на операции присваивания для типов разной длины (long и int, char и int). Реа-
188
                                                                           Приложение

      Оптимизация программ на языке С++

    Уменьшение времени доступа в память.
1. Групповое присваивание:

использование а=b=1;
вместо а=1; b=l;

2. Использование оператора присваивания в условии:

if ((c=getchar())!=EOF)
{ }

вместо

c=getchar();
if (c!=EOF)
{...}

3. Использование условного оператора:

а=(х0)?х:х+1;

вместо

if (x0)
      а=х;
else a=x+1;

4. Использование операции сдвига при умножении на степень 2:

i=(j<<3)+j; // j*8+j

вместо

i=j*9;

5. Использование операций ++, −−, +=, −=:

mas [i+2] ++;

вместо

mas [i+2] =mas [i+2] +1;

     Преобразования типов. Следует отметить, что наиболее быстро выполняются
операции, не связанные с преобразованием типа. Например, аргументы вещественного
типа в выражениях при вычислении преобразуются в тип double. Поэтому, если они уже
описаны как double, то программа будет работать быстрее. Также необходимо обратить
внимание на операции присваивания для типов разной длины (long и int, char и int). Реа-

                                          188