Составители:
Рубрика:
лизация таких операций требует, в общем случае, включения специальных команд рас-
ширения (например - знаковое расширение).
Условия в операторе if. По стандарту языка С условия в условном операторе вы-
числяются последовательно. При этом, если условие есть, например, некоторая конъ-
юнкция элементарных посылок, то при ложности одной из них все остальные уже не
вычисляются. Это можно использовать, располагая условия в порядке, обеспечивающем
минимальное число вычислений. Аналогичные рассуждения применимы и для дизъюнк-
ции элементарных посылок.
Функции и передача параметров. Остановимся на следующих моментах:
-
временной выигрыш можно получить, реализуя функции как текстовые макросы;
-
функции могут быть реализованы как inline (открытая подстановка);
-
для сложных агрегатов данных передача указателей осуществляется быстрее, чем
передача самих значений, поскольку в последнем случае выполняется полное копи-
рование аргументов.
Использование указателей вместо индексации. При работе с массивами исполь-
зование указателей может обеспечить выигрыш во времени по сравнению с индексаци-
ей. Например, вместо:
mas [0] =mas [i] +mas [j];
можно использовать
*mas=*(mas+i) + *(mas+j);
189
лизация таких операций требует, в общем случае, включения специальных команд рас-
ширения (например - знаковое расширение).
Условия в операторе if. По стандарту языка С условия в условном операторе вы-
числяются последовательно. При этом, если условие есть, например, некоторая конъ-
юнкция элементарных посылок, то при ложности одной из них все остальные уже не
вычисляются. Это можно использовать, располагая условия в порядке, обеспечивающем
минимальное число вычислений. Аналогичные рассуждения применимы и для дизъюнк-
ции элементарных посылок.
Функции и передача параметров. Остановимся на следующих моментах:
- временной выигрыш можно получить, реализуя функции как текстовые макросы;
- функции могут быть реализованы как inline (открытая подстановка);
- для сложных агрегатов данных передача указателей осуществляется быстрее, чем
передача самих значений, поскольку в последнем случае выполняется полное копи-
рование аргументов.
Использование указателей вместо индексации. При работе с массивами исполь-
зование указателей может обеспечить выигрыш во времени по сравнению с индексаци-
ей. Например, вместо:
mas [0] =mas [i] +mas [j];
можно использовать
*mas=*(mas+i) + *(mas+j);
189
