Dies ist ein Beispielcode aus Die C-Programmiersprache von Ritchie & Kernighan.Return-Zeichen
int c;
while((c=getchar())!=EOF) {
putchar(c);
}
Beachten Sie, dass referes auf eine Variable des Typs int putchar. Warum ist es möglich, mit diesem Code sowohl Zeichen als auch Ganzzahlen anzuzeigen und anzuzeigen?
Beachten Sie, dass der Grund int anstelle von char verwendet wird, weil das System in der Lage sein muss, EOF zu signalisieren - und dazu einen speziellen Rückgabewert, -1 (der der EOF-Konstante entspricht) verwendet. Da dieses -1 nicht in das char passt, wird das Ergebnis von getchar() stattdessen als int gespeichert. – mfrankli
Der Wortlaut klingt wie ein int ist in der Regel 4 Bytes (wahr) und ein Zeichen ist in der Regel 1 Byte (nicht genau, weil ein Zeichen ist * immer * 1 Byte). Trotzdem +1 für eine gute Antwort. –
@mfrankli: Sie * können * -1 in ein 'char' setzen, wenn der' char' Typ der Implementierung signiert ist, was viele sind, und die Konvertierungsregeln erlauben '-1', in' char' Typ konvertiert zu werden, wenn dies der Fall ist unterzeichnet. Der Grund dafür, dass 'getchar'' int' zurückgibt, ist, dass es * immer * signiert ist und 'EOF' als irgendeine negative Zahl definiert ist (nicht notwendigerweise -1, ist es aber normalerweise). – dreamlax