sizeof 使用求解

LubinLew 2019-07-09 07:08:35
我不太理解, 尤其是 sizeof(func)=1 这个情况, 大佬们最好深入的讲解一下sizeof,
C99之前sizeof好像都是再编译阶段就计算完成,c99有动态数组之后, 好像就不是了吧~

short func(void)
{
printf("func() called !!!!!!!!!!\n");
return 3;
}

int main(void)
{
int i = 0;
sizeof(i++);
printf("i=%d\n", i);

printf("sizeof(func)=%lu\n", sizeof(func));
printf("sizeof(func())=%lu\n", sizeof(func()));
}
...全文
113 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
636f6c696e 2019-07-09
  • 打赏
  • 举报
回复
我也觉得没啥意义,应该是编译器规定,sizeof 函数的值就为1,函数指针值就和指针的大小一样
lin5161678 2019-07-09
  • 打赏
  • 举报
回复
要详细就直接翻标准文档不就好了么 sizeof的内容也不多
lin5161678 2019-07-09
  • 打赏
  • 举报
回复
sizeof 不能用函数名做操作数 结果没意义 不用讨论
lin5161678 2019-07-09
  • 打赏
  • 举报
回复
引用 3 楼 636f6c696e 的回复:
应该是编译器规定,sizeof 函数的值就为1
没有这样的规定

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧