Di mana halaman manual untuk fungsi `sizeof` C?

10

Kenapa tidak ada halaman manual untuk sizeoffungsi C?

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

$ man sizeof
No manual entry for sizeof

Saya memang melihat halaman manual untuk fungsi C lainnya seperti mallocjika saya menjalankan man 3 mallocdan perintah yang serupa, tetapi tidak untuk sizeof.

pengguna1527227
sumber
mengapa Anda ingin melihat halaman manual Linux untuk hal C? Kecuali itu hal yang berhubungan dengan POSIX, membaca dari dokumen standar lebih baik
phuclv

Jawaban:

9

sizeof bukan fungsi. ini adalah operator: http://en.wikipedia.org/wiki/Sizeof

drk.com.ar
sumber
1
Apakah operator kata lain untuk makro? Apa arti sebenarnya dari operator?
user1527227
1
Tidak. Makro adalah beberapa teks (bukan kata yang dilindungi, atau operator, atau fungsi) yang ditafsirkan oleh precompiler dan diperluas menjadi sesuatu yang dapat dikompilasi. Operator terlihat seperti fungsi, tetapi mereka adalah bagian dari bahasa itu sendiri. Fungsi biasanya merupakan bagian dari perpustakaan. Untuk penjelasan terperinci, baca: en.wikipedia.org/wiki/Operator_(computer_programming)
drk.com.ar
Terima kasih. Pertanyaan terakhir: Apakah ada dokumentasi resmi untuk operator seperti ini?
user1527227
5
Iya. Spesifikasi bahasa C: open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf - Periksa bagian 6.5.x
drk.com.ar
2

Anda dapat menggunakan man -wK 'sizeof' | sort -uuntuk menemukan artikel yang mengandung sizeof, tetapi itu akan menghasilkan banyak hasil. Namun perhatikan bahwa setiap artikel tentang sesuatu akan memiliki hal itu sebagai kata pengantar yang dikelilingi oleh spasi, kami akan mencari artikel seperti ini zgrep -P '\ssizeof\s' /usr/share/man/man3/*. Tetapi mencari di bagian 3 tidak memberikan informasi yang berguna, jadi saya akan mencari di bagian 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

Seperti yang Anda lihat, sizeofdisebutkan di halaman manual operator, karena itu bukan fungsi tetapi operator dan berfungsi bahkan tanpa tanda kurung untuk pengidentifikasi seperti di sizeof bufatas

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

phuclv
sumber