Im GCC-Compiler sind sizeof(main)
, sizeof(printf)
und sizeof(scanf)
alle 1.
Ich möchte wissen, wie groß all diese sind. 1. Was ist die Logik dahinter?
Weil der C (99) Standard erfordert (§ 6.5.3.4 / 1)
Der Operator
sizeof
darf nicht auf einen Ausdruck mit dem Funktionstyp oder einen unvollständigen Typ, auf den Namen eines solchen Typs in Klammern oder auf einen Ausdruck angewendet werden, der ein Bitfeld bezeichnet Mitglied.
Der Rückgabewert ist also bedeutungslos. Wenn Sie den Funktionszeiger sizeof
benötigen, verwenden Sie
gcc gibt 1 für Typen zurück, deren Größe bedeutungslos ist (siehe c-common.c ):
%Vor%Ich hätte gedacht, dass es die Größe eines Zeigers ist, um zu funktionieren. Man überrascht mich tatsächlich ...