Пользовательские типы, проходящие в функцию, является вызовом по значению в C?
Вопрос
У меня есть структура, и я передаю эту структуру, чтобы функционировать. Может быть, профиль функции:
typedef struct
{
//Bla Bla
} ABC;
void func(ABC abc)
{
}
Этот вызов функции вызов по значению или вызову по ссылке? Кто -то говорит, что «C не имеет конструктора копирования, поэтому мы не можем передавать пользовательские типы с значением». Эта идея правильной?
Решение
Звоните по значению. С всегда Звоните по значению.
(C не имеет конструкторов копирования, но структуры все еще можно скопировать, создав вторую структуру с исходной структурой в качестве ее инициализатора. Параметры функции инициализируются с значениями, которые вы передаете в качестве аргументов; это тот же механизм на работе.)
Не связан с StackOverflow