Onde está a página de manual para a função `sizeof` C?


10

Como é que não há página de manual para a sizeoffunção C?

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

$ man sizeof
No manual entry for sizeof

Eu vejo páginas de manual para outras funções C, como mallocse eu executasse man 3 malloccomandos semelhantes, mas nada para sizeof.


por que você deseja ver a página de manual do Linux para uma coisa em C? A menos que seja uma coisa POSIX-relacionada, a leitura de um documento padrão é melhor
phuclv

Respostas:


9

sizeof não é uma função. é um operador: http://en.wikipedia.org/wiki/Sizeof


11
Operador é outra palavra para macro? O que exatamente significa operador?
User1527227

11
Não. Uma macro é um texto (palavra não reservada, operador ou função) interpretado pelo pré-compilador e expandido para algo que pode ser compilado. Os operadores parecem funções, mas fazem parte da própria linguagem. As funções geralmente fazem parte de uma biblioteca. Para obter uma explicação detalhada, leia: en.wikipedia.org/wiki/Operator_(computer_programming)
drk.com.ar

Obrigado. Última pergunta: Existe uma documentação oficial para operadores como este?
User1527227

5
Sim. A especificação da linguagem C: open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf - Verifique a seção 6.5.x
drk.com.ar

2

Você pode usar man -wK 'sizeof' | sort -upara encontrar os artigos que contêm sizeof, mas isso retornará muitos resultados. No entanto, observe que todo artigo sobre algo terá essa palavra de barra cercada por espaços, procuraremos o artigo assim zgrep -P '\ssizeof\s' /usr/share/man/man3/*. Mas pesquisar na seção 3 não fornece nenhuma informação útil, portanto, pesquisarei na seção 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

Como você pode ver, isso sizeofé mencionado na página de manual do operador, porque não é uma função, mas um operador e funciona mesmo sem parênteses para identificadores como sizeof bufacima

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.