`sizeof` C函数的手册页在哪里?


9

怎么没有sizeofC函数的手册页?

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

$ man sizeof
No manual entry for sizeof

我确实看到其他C函数的man页面,malloc如果我运行man 3 malloc和类似的命令,但没有sizeof


你为什么要看一个C语言的Linux手册页?除非它与POSIX相关,否则从标准文档中读取更好
phuclv 2017年

Answers:


9

sizeof不是一个功能。它是一个运营商:http//en.wikipedia.org/wiki/Sizeof


1
操作员是宏的另一个词吗?操作符究竟意味着什么?
user1527227 2014年

1
不可以。宏是预编译器解释的一些文本(不是保留字,也不是操作符,也不是函数),并扩展为可编译的内容。运算符看起来像函数,但它们是语言本身的一部分。函数通常是库的一部分。有关详细说明,请参阅:en.wikipedia.org/wiki/Operator_
computer_programming

谢谢。最后一个问题:这样的运营商是否有官方文档?
user1527227 2014年

5
是。C语言规范:open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf - 查看6.5.x部分
drk.com.ar 2014年

2

您可以使用man -wK 'sizeof' | sort -u查找包含的文章sizeof,但这会返回很多结果。但请注意,每篇关于某事的文章都会将这个东西作为一个被空格包围的裸字,我们会搜索这样的文章zgrep -P '\ssizeof\s' /usr/share/man/man3/*。但是在第3节中搜索并没有给出任何有用的信息,所以我将在第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

正如您所看到的,sizeof在操作员手册页中提到了,因为它不是一个函数而是一个操作符,即使没有sizeof buf上述标识符的括号也可以工作

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.