Wo ist die Manpage für die `sizeof` C-Funktion?

9774
user1527227

Wieso gibt es keine Manpage für die sizeofC-Funktion?

$ man 3 sizeof No manual entry for sizeof in section 3  $ man sizeof No manual entry for sizeof 

Ich sehe Manpages für andere C-Funktionen, zB mallocwenn ich man 3 mallocund ähnliche Befehle ausführte, aber nichts dafür sizeof.

7
Warum möchten Sie die Linux-Manpage für ein C-Ding sehen? Sofern es sich nicht um POSIX-bezogene Dinge handelt, ist das Lesen aus einem Standarddokument besser phuclv vor 7 Jahren 0

2 Antworten auf die Frage

8
drk.com.ar

sizeof ist keine Funktion. Es ist ein Operator: http://en.wikipedia.org/wiki/Sizeof

Ist Operator ein anderes Wort für Makro? Was bedeutet Betreiber genau? user1527227 vor 9 Jahren 1
Nein. Ein Makro ist ein Text (kein reserviertes Wort, kein Operator oder Funktion), der vom Precompiler interpretiert und in etwas erweitert wird, das kompiliert werden kann. Operatoren sehen wie Funktionen aus, sind aber Teil der Sprache selbst. Funktionen sind normalerweise Teil einer Bibliothek. Für eine ausführliche Erklärung lesen Sie bitte: http://en.wikipedia.org/wiki/Operator_(Computer_programming) drk.com.ar vor 9 Jahren 1
Vielen Dank. Letzte Frage: Gibt es eine offizielle Dokumentation für solche Betreiber? user1527227 vor 9 Jahren 0
Ja. Die C-Sprachspezifikation: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf - Siehe Abschnitt 6.5.x drk.com.ar vor 9 Jahren 4
0
phuclv

Sie können verwenden man -wK 'sizeof' | sort -u, um die Artikel zu finden, die enthalten sizeof, aber das wird eine Menge Ergebnisse zurückgeben. Beachten Sie jedoch, dass jeder Artikel über etwas dieses Ding als Bareword umgeben von Leerzeichen hat. Wir werden den Artikel so suchen zgrep -P '\ssizeof\s' /usr/share/man/man3/*. Die Suche in Abschnitt 3 enthält jedoch keine nützlichen Informationen. Ich werde in Abschnitt 7 suchen

$ zgrep -P '\ssizeof\s' /usr/share/man/man7/* /usr/share/man/man7/inotify.7.gz: len = read(fd, buf, sizeof buf); /usr/share/man/man7/operator.7.gz:! ~ ++ \-\- + \- (type) * & sizeof right to left 

Wie Sie sehen, sizeofwird das in der Operator-Manpage erwähnt, da es sich nicht um eine Funktion, sondern um einen Operator handelt, und es funktioniert auch ohne Klammern für Bezeichner wie sizeof bufoben

OPERATOR(7) Linux Programmer's Manual OPERATOR(7)  NAME top  operator - C operator precedence and order of evaluation  DESCRIPTION top  This manual page lists C operators and their precedence in evaluation.  Operator Associativity () [] -> . left to right ! ~ ++ -- + - (type) * & sizeof right to left * / % left to right + - left to right << >> left to right < <= > >= left to right == != left to right & left to right ^ left to right | left to right && left to right || left to right ?: right to left = += -= *= /= %= <<= >>= &= ^= |= right to left, left to right 

http://man7.org/linux/man-pages/man7/operator.7.html