sizeof(main)、sizeof(printf)、sizeof(scanf) 是什么?
在gcc编译器中,sizeof(main)
、sizeof(printf)
和sizeof(scanf)
均为1。 我想知道这些的大小是多少 1. 其背后的逻辑是什么?
In the gcc compiler, sizeof(main)
, sizeof(printf)
and sizeof(scanf)
all are 1.
I want to know how the size of all these are 1. What is the logic behind it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因为C(99)标准要求(§6.5.3.4/1)
所以返回值没有意义。如果您需要
sizeof
函数指针,请使用gcc 在 sizeof 无意义的类型上返回 1(请参阅 c-common.c):
Because the C(99) standard requires (§6.5.3.4/1)
so the return value is meaningless. If you need the
sizeof
the function pointer, usegcc returns 1 on types that the sizeof is meaningless (see c-common.c):