Составители:
Рубрика:
лизация таких операций требует, в общем случае, включения специальных команд рас-
ширения (например - знаковое расширение).
Условия в операторе 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