Domanda

Ho il seguente codice C in un programma:

printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
printf("Test after print_foo()");

dove print_foo printf è il passato in 2-D array di caratteri con una corretta .c e .h file importati.

uscita Console è solo le due istruzioni printf. Debug, il runtime passi mai nemmeno in print_foo.

Tutte le idee?

È stato utile?

Soluzione

void print_foo(char board[ROW][COL]);

Non è una chiamata di funzione. E 'una dichiarazione.

Probabilmente si desidera

print_foo(board);

Altri suggerimenti

Tale prefisso void sta facendo la linea centrale in una dichiarazione di funzione print_foo (e la char tra parentesi significa che sarebbe altrimenti sintassi non valida). Per solo Chiama print_foo, modificare la linea di mezzo a print_foo(board); (se board è come si denominata che 2-D array di caratteri).

che sembra una dichiarazione di funzione per me - è per questo che il vostro foo-nction non viene chiamato

.

La linea di mezzo è solo una dichiarazione di funzione, non è una chiamata di funzione.

Se non si dichiara il prototipo in precedenza allora dovete scrivere questo:

printf("Test before print_foo()");
void print_foo(char board[ROW][COL]);
print_foo(board);
printf("Test after print_foo()");

In breve è necessario definire / dichiarare print_foo prima di richiamare, o il compilatore contrassegnerà un errore !!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top