Рассмотрим сообщение «узел (узел, символ, int)» отличается по уровням косвенности от «int ()» ». В этом сообщении int ()
- это тип, который получает нестандартные компиляторы из объявления по умолчанию, которое предоставляется, когда вы не объявляете функцию. То есть, когда вы используете AddNode
перед его объявлением, оно автоматически объявляется как int AddNode()
.
Затем, позже в вашем коде, когда появляется ваше объявление AddNode
, ваше объявление контрастирует с объявлением по умолчанию, и компилятор печатает это сообщение.
Чтобы исправить это, поместите объявление AddNode
, прежде чем использовать его. Такое объявление должно появляться в каждом исходном файле, где оно используется. (На самом деле, объявление должно появиться в C единица перевода , что означает все файлы, которые включаются при компиляции исходного файла. Единица перевода включает заголовочные файлы, которые включены в #include
. Вы должны иметь объявление AddNode
либо в самом исходном файле, либо в файле, который он включает.)
Кроме того, вы объявляете AddNode
как node AddNode(node head, char name, int size);
, но передаете "Test Name"
для второго параметра. В качестве аргумента функции "Test Name"
действует как char *
, а не char
, поэтому вы, вероятно, захотите изменить объявление на node AddNode(node head, char *name, int size);
.