Dov'è la pagina man per la funzione `sizeof` C?


10

Come mai non esiste una pagina man per la sizeoffunzione C?

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

$ man sizeof
No manual entry for sizeof

Vedo pagine man per altre funzioni C come mallocse avessi eseguito man 3 malloccomandi simili, ma niente per sizeof.


perché vuoi vedere la pagina man di Linux per una cosa in C? A meno che non sia una cosa relativa a POSIX, leggere da un documento standard è meglio
phuclv,

Risposte:


9

sizeof non è una funzione. è un operatore: http://en.wikipedia.org/wiki/Sizeof


1
Operatore è un'altra parola per macro? Cosa significa esattamente operatore?
user1527227

1
No. Una macro è un testo (non una parola riservata, né un operatore, né una funzione) interpretato dal precompilatore ed espanso in qualcosa che può essere compilato. Gli operatori sembrano funzioni, ma fanno parte del linguaggio stesso. Le funzioni di solito fanno parte di una libreria. Per una spiegazione dettagliata leggi: en.wikipedia.org/wiki/Operator_(computer_programming)
drk.com.ar

Grazie. Ultima domanda: esiste una documentazione ufficiale per operatori come questo?
user1527227

5
Sì. Le specifiche del linguaggio C: open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf - Controlla la sezione 6.5.x
drk.com.ar

2

È possibile utilizzare man -wK 'sizeof' | sort -uper trovare gli articoli che contengono sizeof, ma ciò restituirà molti risultati. Comunque noti che ogni articolo su qualcosa avrà quella cosa come una parola nuda circondata da spazi, cercheremo l'articolo come questo zgrep -P '\ssizeof\s' /usr/share/man/man3/*. Ma la ricerca nella sezione 3 non fornisce alcuna informazione utile, quindi cercherò nella sezione 7

$ 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

Come puoi vedere, sizeofviene menzionato nella pagina man dell'operatore, perché non è una funzione ma un operatore e funziona anche senza parentesi per identificatori come sizeof bufsopra

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.