Was ist die Größe von (main), sizeof (printf), sizeof (scanf)?

8

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?

    
Parikshita 01.10.2010, 11:52
quelle

2 Antworten

22

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

%Vor%

gcc gibt 1 für Typen zurück, deren Größe bedeutungslos ist (siehe c-common.c ):

%Vor%     
kennytm 01.10.2010, 11:57
quelle
-1

Ich hätte gedacht, dass es die Größe eines Zeigers ist, um zu funktionieren. Man überrascht mich tatsächlich ...

    
Mario The Spoon 01.10.2010 11:57
quelle

Tags und Links