В C, делает ли использование статических переменных в функции быстрее?

Моя функция будет вызываться тысячи раз. Если я хочу сделать это быстрее, будет ли полезно изменить локальные переменные функции на статические? Моя логика заключается в том, что, поскольку статические переменные постоянны между вызовами функций, они выделяются только в первый раз, и, таким образом, каждый последующий вызов не будет выделять для них память и станет быстрее, потому что этап выделения памяти не выполняется.

Кроме того, если вышесказанное верно, тогда будет ли использование глобальных переменных вместо параметров более быстрым для передачи информации функции каждый раз, когда она вызывается? Я думаю, что пространство для параметров также выделяется при каждом вызове функции, чтобы обеспечить рекурсию (поэтому рекурсия использует больше памяти), но поскольку моя функция не рекурсивна, и если мои рассуждения верны, то снятие параметров теоретически приведет к это быстрее.

Я знаю, что эти вещи, которые я хочу делать, являются ужасными привычками программирования, но, пожалуйста, скажите мне, разумно ли это. Я все равно собираюсь попробовать, но, пожалуйста, поделитесь своим мнением.

22
задан salvador p 1 October 2010 в 01:01
поделиться