Die anderen Antworten und Kommentare zeigen einige der vielen Möglichkeiten auf, dass dies eine schreckliche, irreführende und schlecht geschriebene Frage ist. Aber es gibt noch ein anderes Problem, das noch niemand identifiziert hat. Die Frage ist:
Ein Semikolon (';') wird nach einer Funktionsdeklaration nicht benötigt. Richtig oder falsch.
OK, schauen wir uns eine Funktionsdeklaration an:
int func(); /* */
/* ^ */
/* | */
/* That whitespace is "after the function declaration". */
Das Ganze ist die Erklärung . Die Erklärung wird nicht int func()
und dann gefolgt von ein ;
. Auf die Deklaration int func();
folgt ein Leerzeichen.
Die Frage ist also: Wird nach der Deklaration ein Semikolon benötigt ? Natürlich nicht. Die Deklaration enthält bereits ein Semikolon, das sie beendet hat. Ein Semikolon nach der Deklaration wäre sinnlos. Im Gegensatz,int func(); ;
wäre ein Semikolon nach einer Funktionsdeklaration .
Die Frage war mit ziemlicher Sicherheit bestimmt „: ist die letzte Token in einer Funktionsdeklaration immer ein Semikolon wahr oder falsch“ Aber das ist nicht die Frage , die sie geschrieben hat , weil der Autor des Quiz war nicht klar , über das Problem zu denken , die Frage zu stellen.
Mein Rat ist, Programmiersprachen-Quiz insgesamt zu vermeiden. Sie sind ziemlich schrecklich.
Lustige Tatsache, während wir auf dem Thema sind. In C # sind diese alle legal:
class C {}
class D {};
struct E {}
struct F {};
In C # kann eine Klassen- oder Strukturdeklaration nach Ihrem Ermessen mit einem Semikolon enden oder nicht. Diese seltsame kleine Funktion wurde für C / C ++ - Programmierer hinzugefügt, die zu C # kommen und wissen, dass Typdeklarationen mit einem sinnlosen Semikolon enden. Das Designteam wollte sie nicht dafür bestrafen, dass sie diese Angewohnheit hatten. :-)