Atbilde 1:

Ļaujiet man sākt ar funkciju, funkcijai var būt prototips, un tai jābūt definīcijai. Definīcijā tiks uzrakstīts funkcijas pamats vai funkcijas funkcionālā loģika, un funkcijas prototipa gadījumā tiks parādīts tikai funkcijas paraksts (t.i., funkcijas atgriešanās tips, funkcijas nosaukums un parametru veidi)

Bibliotēkas gadījumā: parasti funkciju definīcijas tiek rakstītas un parasti tiek sastādītas kodos. Iespējams, ka mums nav bibliotēkas avota koda. Parasti C statiskā un dinamiskā bibliotēka ir divu veidu. Statiskajām bibliotēkām ir paplašinājums * .lib, bet dinamiskajām bibliotēkām ir paplašinājums * .dll. Kāda ir atšķirība starp divām bibliotēkām, tas ir cits stāsts par kādu citu dienu.

Galvenes gadījumā: tajā parasti tiek rakstīti funkcionālie prototipi un ar tiem saistītā mainīgā deklarācija. Ja C kodā tiek izmantota bibliotēka un tiek izsaukta bibliotēkas funkcija, nedeklarējot funkcijas prototipu, koda kompilācija rada kļūdu. Tātad katrai bibliotēkai ir galvene, kurā ir uzskaitīti visi tajā pieejamie funkciju prototipi. Galvenes galvenēm ir * .h faila paplašinājums.

Vēl viena būtiska atšķirība ir tā, ka galvenes faili tiek iekļauti projektā būvēšanas pirmapstrādes posmā, un bibliotēkas tiek savienotas būvēšanas procesa savienošanas posmā.