在函数上使用 sizeof 的输出[重复]

2023-12-11

为什么下面的代码给出:

#include<stdio.h>

int voo()
{
    printf ("Some Code");
    return 0;
}


int main() {
    printf ("%zu", sizeof voo);
    return 0;
}

以下输出:

1

C语言没有定义sizeof对于功能。表达方式sizeof voo违反了约束,并且需要任何符合标准的 C 编译器进行诊断。

gcc 作为扩展实现了函数指针的指针运算。为了支持这一点,gcc 任意假设函数的大小为 1,因此将 42 添加到函数的地址将得到超出函数地址 42 个字节的地址。

他们对 void 做了同样的事情,所以sizeof (void)产生 1,并且指针算术void*是允许的。

如果您想编写可移植代码,最好避免这两个功能。使用-ansi -pedantic or -std=c99 -pedantic以获得此类事情的警告。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在函数上使用 sizeof 的输出[重复] 的相关文章

  • 如何在 Caliburn.Micro 中使用 Conductor 的依赖注入

    我有时用Caliburn Micro http caliburnmicro com创建应用程序 使用最简单的 BootStrapper 我可以像这样使用 IoC 容器 SimpleContainer private SimpleContai
  • 如何转发声明要在 unique_ptr 的标准容器中使用的类

    在智能指针的标准容器中使用它时 是否可以避免完整的类定义可见 例如 我无法编译以下内容 include
  • C语言实现延时函数

    我想使用空循环实现延迟函数 但是完成一次循环所需的时间取决于编译器和机器 我希望我的程序自行确定时间并将程序延迟指定的时间 谁能给我任何想法如何做到这一点 注意 有一个名为delay 的函数可以将系统暂停指定的毫秒 是否可以在不使用此功能的
  • 等待运算符错误

    我的代码有问题 我怎么解决这个问题 这个问题出现在await操作符中 public MyModel HttpClient client new HttpClient HttpResponseMessage response await cl
  • 提取单花括号内的值

    我想要一个收藏 value 一个字符串使用正则表达式 例如 lorem ipsum field1 lorem ipsum field2 lorem ipsum field1 lorem ipsum field2 field3 我会得到 fi
  • 值类型如何实现引用类型

    我遇到了一个值类型正在实现 ref 的场景 类型 只是想知道这怎么可能 幕后发生了什么 结构体是值类型 接口是引用 类型但结构可以实现接口而不会出现任何错误 有什么想法吗 提前致谢 实际上 它同时以两种不同的方式进行 首先 任何值类型都可以
  • 如何在Unity Inspector中创建多维数组?

    如何在 Unity Inspector 中创建枚举多维数组并使其可序列化 以便我可以从不同的脚本调用它 public enum colors red blue green yellow cyan white purple public in
  • 编译器消息“警告:格式‘%s’需要类型‘char *’,但参数 2 具有类型‘char (*)’”

    我正在尝试运行一个简单的 C 程序 但收到此错误 警告 格式 s 需要类型 char 但参数 2 的类型为 char 20 我在跑步Mac OS X v10 8 https en wikipedia org wiki OS X Mounta
  • FFplay成功移入我的Winform中,如何设置它无边框?

    用这个代码 在 C 应用程序中显示 tcp 视频流 来自 FFPLAY FFMPEG https stackoverflow com questions 14201894 show a tcp video stream from ffpla
  • 如何解析多态 JSON 数组?

    我有一个 JSON 格式的文件 其中包含个人用户的记录 一些用户的记录中间有一个评论字段 我只想解析顶级项目 全名 贡献者姓名 电子邮件 使用 Newtonsoft JSON 解析器 但我似乎无法让它识别单个对象 当我将整个字符串解析为一个
  • 将旧的 Unity 代码升级到 Unity 5

    在触发按钮上播放动画的代码似乎不起作用 我在 Youtube 上看到了一个视频 内容很简单animation Play 它可以在该视频上运行 但我无法让它在我的计算机上运行 我做错了什么还是团结改变了它 请帮助我在网上找不到解决方案 所有
  • 如何将输出重定向到 boost 日志?

    我有一个使用boost log的C 程序 我加载了用户提供的动态链接库 我想将 stderr 重定向到 boost 日志 以便用户的库随时执行以下操作 std cerr lt lt Some stuff 它产生相同的结果 BOOST LOG
  • ef core 在更新数据库期间不使用 ASPNETCORE_ENVIRONMENT

    我使用 Visual Studio 通过一定的迁移来更新我的所有环境 使用下面的命令效果很好 update database Migration initMigrationProduct c ProductContext Environme
  • “DeploymentItem”属性是什么意思?

    假设我们有一个简短的程序 namespace ConsoleTryIt static class Program static void Main string args var sum Add 1 2 private static int
  • 链接到ntdll.lib并调用ntdll.dll内部的函数

    我最近正在对私有 API 进行一些研究 我尝试调用诸如NtOpenFile在 ntdll dll 中LoadLibrary and GetProcAddress在运行时 幸运的是 它成功了 今天早上我在电脑上进行了文件搜索 发现ntdll
  • 从 AuthorizeAttribute 继承的属性不起作用

    我目前正在尝试根据用户角色在新的 ASP MVC 5 应用程序中实现安全性 目标是防止用户在没有特定角色 或更高角色 的情况下访问某些控制器或控制器方法 根据到目前为止我所读到的问题 我创建了一个继承 AuthorizeAttribute
  • 如何在 stl 模板中使用导出类 (__declspec(dllexport))?

    我正在使用导出的类 class declspec dllexport myclass private template declspec dllexport class std map
  • NSubstitute - 测试特定的 linq 表达式

    我在当前正在开发的 MVC 3 应用程序中使用存储库模式 我的存储库界面如下所示 public interface IRepository
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin
  • DbContext.SaveChangesAsync 异常处理

    当搭建新的脚手架时ApiController通过 Visual Studio 2013 中的异步操作和实体框架支持 某些方法可以包装DbContext SaveChangesAsync https msdn microsoft com en

随机推荐

  • “ON CONVERSION ERROR”失败并显示“ORA-43918:此参数必须是文字”

    ON CONVERSION ERROR应允许转换函数处理诸如 ORA 01858 在需要数字的地方发现非数字字符 之类的错误 但是当我使用该功能时 我只会收到不同的错误 SQL gt select to date the date defa
  • 将“CallLog.Calls”存储到另一个表中

    我需要使用什么样的查询 将 CallDB 创建为 从 CallLog Calls 中选择 我想将整个通话记录存储到另一个表中进行处理 因为我读到 calllog calls 只有最后 500 条记录 好吧 我自己做了一个解决方案 不知道它是
  • SQL Server批量插入

    我想将一列文本文件导入到我的 SQL 表之一中 该文件只是脏话列表 我编写了以下 TSQL 来执行此操作 BULK INSERT SwearWords FROM c swears txt WITH FIELDTERMINATOR ROWTE
  • Scapy多次嗅探数据包?

    我正在使用 Scapy 通过使用以下代码来捕获数据包 from scapy all import def verify p p display sniff prn verify iface lo 嗅探功能多次捕获每个数据包 例如 如果我有一
  • RecyclerView 加载更多内容并出现 ProgressBar 错误

    我正在尝试创建RecyclerviewonLoadMore 与ProgressBar在底部 我试过了这个解决方案 但是我的方法 onLoadMoreActivity从未被调用过 请帮我 这是我的Adapter public class Ne
  • 使用 Realm studio 打开我的领域文件时出现问题

    我无法在领域工作室中打开 default realm 文件 这是我收到的错误 此版本的 Realm 不支持打开格式版本 20 的 Realm 文件 我在 stackoverflow 上看到了类似的问题 但没有任何答案 领域工作室版本 5 0
  • String.intern() 的性能损失

    很多人谈论 String intern 的性能优势 但实际上我更感兴趣的是性能损失可能是什么 我主要关心的是 搜索成本 intern 确定常量池中是否存在可内部字符串所花费的时间 该成本如何随着池中字符串的数量而变化 同步 显然常量池是整个
  • 无法使用 spring javamail 从服务器 heroku 发送电子邮件

    我尝试从以下位置发送电子邮件Heroku using 春季javamail 但出现错误 我的代码 import org springframework mail MailSender import org springframework m
  • Git - git-svn 克隆后删除远程分支

    我已经使用以下命令克隆了 SVN 存储库git svn clone trunk trunk tags tags branches branches 该操作已正确执行 现在当我列出我的分支时 我拥有所有过去的标签 例如 git branch
  • 将样式应用于 Android ListView

    我想在我的应用程序中设置 lisview 的样式 如下图所示 我尝试通过应用渐变来开发它 list item normal 的代码是
  • 具有自定义视图的堆叠式 ActionBar 选项卡未正确显示

    使用操作栏选项卡时 有时当选项卡内容对于显示来说太大时 它们会显示为 堆叠 当我对选项卡内容使用自定义视图时 会出现问题 它会导致所选选项卡不会显示在下拉列表中 并且一旦选择选项卡 下拉列表就会消失 并出现小的空选项卡 Here is a
  • Aho-Corasick 整个单词的文本匹配?

    我正在使用 Aho Corasick 文本匹配 想知道是否可以更改它以匹配terms而不是字符 换句话说 我希望术语而不是字符成为匹配的基础 举个例子 搜索查询 他 句子 你好世界 Aho Corasick 会将 he 与以索引 2 结尾的
  • 播放视频 android 时未捕获第一次按后退按钮

    我有一个奇怪的错误 我不知道如何修复 我有一个视频播放器 一个播放视频的简单视频视图 现在我已经实现了逻辑 以便当用户按下后退按钮时 它告诉他再次按下后退按钮以退出 当他这样做时 它就会退出 但问题是第一次背压没有被抓住 我不知道是什么原因
  • 如果我想使用单个 UIMA 依赖库,是否需要重写整个 java 项目?

    我想用https code google com p heideltime 在一个java项目中 该代码 适合 UIMA 管道 这是我根本不理解的 UIMA 看起来像是为了解决大量我没有的问题而设计的 所以我只想获得运行该代码所需的最少量的
  • 如何保护 C++03 和 C++11 的移动构造函数?

    这类似于在运行时可以检测到 C 03 和 C 11 之间的哪些差异 如果有 但在这种情况下 我希望通过预处理器进行检测 我们该如何守护移动构造函数 and 移动作业 当源代码同时用于 C 03 和 C 11 时 以下是否足够 是移动语义所有
  • 什么时候意图额外在活动之间变得无效?

    我在活动之间接收意图额外内容时遇到问题 在我的 MainActivity 中 我启动 Gallery 活动来选择外部 SD 卡上的视频文件 public class MainMenu extends Activity Button chan
  • 无法从 std::bind 推导出 std::function 的模板参数

    我试图找到一种方法来调用许多类成员函数 每个类成员函数都有不同的参数 并且在调用之前和之后发生某些已知的功能 这个包装函数是我尝试过的 但是例如对它的最终调用不会编译错误 bool Wrapper Work std function Arg
  • 遇到格式不正确的数值 - 这意味着什么?

    当通知打开时 我会收到以下消息标记 注意 遇到格式不正确的数值 这是否意味着预期值不是一个简单的整数 引用的行显示了这一点 per raw gt 0 ceil raw cast 5 100 0 重现 var dump 14 3 votes
  • 从react-js-pagination获取分页器以显示在页面上

    我有一个反应应用程序 它是购物网站的前端 我有一个产品页面 我正在尝试将分页从react js pagination添加到其底部 这样我就不必立即呈现整个产品列表 我遵循了实施分页的指南https www npmjs com package
  • 在函数上使用 sizeof 的输出[重复]

    这个问题在这里已经有答案了 为什么下面的代码给出 include