LINUX.ORG.RU

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

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

Причин может быть несколько:

1) если передать по указателю - то до полей структуры будет сложнее добираться, как в синтаксисе исходника, так и в машинном коде, а компилятору, возможно, будет сложнее это оптимизировать

2) возможно, вызываемая функция для удобства не должна знать структуру sz_string_view_t и должна работать с простыми типами, например потому что она должна принимать и rvalue тоже

3) контекст кода не видел, но возможно там надо передать именно по значению

Вопросы про «почему раскрывать» и «почему копировать» я объединил, потому что, несмотря на то что современный gcc вроде умеет передавать структуры больше машинного слова по значению, так делать не принято - это запутывает логику работы и программы и компилятора.

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

Причин может быть несколько:

1) если передать по указателю - то до полей структуры будет сложнее добираться, как в синтаксисе исходника, так и в машинном коде, а компилятору, возможно, будет сложнее это оптимизировать

2) возможно, вызываемая функция для удобства не должна знать структуру sz_string_view_t и должна работать с простыми типами, например потому что она должна принимать и rvalue тоже

3) контекст кода не видел, но возможно там надо передать именно по значению

Вопросы про «почему раскрывать» и «почему копировать» я объединил, потому что, несмотря на то что современный gcc вроде умеет передавать структуры по значению, так делать не принято - это запутывает логику работы и программы и компилятора.