Передача аргументов в функции с параметрами 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 выше, различия, если таковые имеются, должны быть минимальными.

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

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

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

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

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