Передача аргументов в функции с параметрами const: это быстрее?

Рассмотрим, например:

int sum(int a, int b)
{
    return a + b;
}

против

int sum(const int a, const int b)
{
    return a + b;
}

Второй подход вообще быстрее?

Параметры функции в C копируются и отправляются в функцию, поэтому изменения внутри функции не влияют на исходные значения. Я рассуждаю так, что во второмsum выше, компилятор точно знает, чтоa а такжеb не изменяются внутри функции, поэтому она может просто передавать исходные значения без предварительного их копирования. Тот'почему я думаю второйsum быстрее, чем первый. Но я неЯ действительно знаю. В конкретном простом примереsum выше, различия, если таковые имеются, должны быть минимальными.

Редактировать: sum пример просто чтобы проиллюстрировать мою точку зрения. Я неНе следует ожидать, что в этом конкретном примере должны быть большие различия. Но мне интересно, если в более сложных ситуацияхconst Модификатор внутри параметра функции может быть использован компилятором для ускорения функции. Я сомневаюсь, что компилятор всегда может определить, был ли параметр изменен внутри функции (отсюда мой второй вопрос ниже); отсюда яЯ ожидал, что когда найдетconst модификатор, он делает что-то другое, чем когданет нетconst модификатор.

Вопрос: В общем случае функция будет быстрее, если ее аргументыconstчем тогда, когда их нет?

Вопрос 2: В общем, может ли компилятор C (теоретически) всегда определять, изменяется ли параметр функции внутри функции?

Ответы на вопрос(4)

Ваш ответ на вопрос