Quindi sto seguendo in Head First C e siamo in un capitolo in cui impariamo a compilare più file insieme. Uno di questi è encrypt.c
.perché devo includere un file di intestazione .h nel file .c con lo stesso nome?
#include "encrypt.h"
void encrypt(char *message)
{
char c;
while (*message) {
*message = *message^31;
message++;
}
}
Il file encrypt.h
ripete la prima linea con un punto e virgola alla fine, perché ne ho bisogno? Capisco perché avrei bisogno dei file di intestazione per risolvere il problema dell'utilizzo di una funzione prima che sia definita, quindi potrei capire #incluso in un file che utilizza encrypt.c
, ma perché dovrei averne bisogno all'interno di encrypt.c
? E 'solo una di quelle ragioni "perché"?
Non è possibile utilizzare una funzione prima che sia definita. È possibile dichiarare l'intestazione per la funzione e quindi utilizzarla dopo che è stata definita. Ma un file di intestazione non ti garantisce il superutente in quanto ti permette di usare una funzione non dichiarata. – smac89
Non rilevante in questo particolare esempio, ma i file di intestazione spesso definiscono anche 'typedef's e' struct's e tutti i tipi di cose che le funzioni dichiarate in quell'intestazione potrebbero voler usare. –
Ne ho anche altri. Questo libro ha difetti ma lo fanno tutti. – punstress