LINUX.ORG.RU

История изменений

Исправление mxfm, (текущая версия) :

Всё я прекрасно знаю. В Си, в отличие от C++/D/C# языковые конструкции не переписываются в вызовы функции. Если написано a+b, то это a+b, а не скрытый вызов функции a.opAdd(b). В примере по ссылке приведена замена копирования структуры на memcpy в целях оптимизации, но это - «исключение, которое подтверждает правило». Пожалуй, это правило нарушается только в одном случае - компиляторы Си иногда действительно переписывают копирование больших структур, но это не совсем про язык, а про оптимизацию, которая может зависеть от версии языка и от опций компиляции.

Исходная версия mxfm, :

Всё я прекрасно знаю. В Си, в отличие от C++/D/C# языковые конструкции не переписываются в вызовы функции. Если написано a+b, то это a+b, а не скрытый вызов функции a.opAdd(b). В примере по ссылки приведена замена копирования структуры на memcpy в целях оптимизации, но это - «исключение, которое подтверждает правило». Пожалуй, это правило нарушается только в одном случае - компиляторы Си иногда действительно переписывают копирование больших структур, но это не совсем про язык, а про оптимизацию, которая может зависеть от версии языка о опций компиляции.