未定义功能传感

2024-01-07

我正在尝试使用 GCC 编译器执行此操作(这可能吗?):

指定一个函数,但该函数如果未实现则指向 NULL。例子:

extern void something(uint some);

如果未实现,则指向 NULL 值。

所以可以这样检查:

something != NULL ? something(222) : etc.;

我想要通过 GCC 来解决(这可以用函数指针来解决)。


这绝对是不可移植的,但 gcc 可以在某些平台上使用弱符号来做到这一点。我知道这适用于 Linux 和 *BSD,但不适用于 MacOS。

$ cat weak.c
#include <stdio.h>

extern int foo(void) __attribute__((__weak__));

int
main(int argc, char **argv)
{
    int x = foo ? foo() : 42;

    printf("%d\n", x);
    return 0;
}
$ cat weak2.c
int
foo(void)
{
    return 17;
}
$ cc -o weak weak.c && ./weak
42
$ cc -o weak weak.c weak2.c && ./weak
17
$
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

未定义功能传感 的相关文章

  • Windows 上使用 g++ 的 Makefile,链接库

    我已经厌倦了 MSVC 6 以及每个人总是告诉我它是一个蹩脚的编译器等等 所以现在我决定尝试使用 vim 加 g 和 makefile 这是我的问题 我有以下 makefile This is supposed to be a commen
  • SL4 AutoCompleteBox 重复筛选结果问题

    我在 AutoCompleteBox 过滤方面遇到问题 它似乎记住了之前的过滤器 例如 我输入 A 它会返回 1 项 我删除 A 并输入 Z 这应该返回 1 项 问题是它返回 A 过滤器加上 Z 的结果 我删除 Z 并输入 S 这会带回 2
  • 更快的算法来计算有多少数字可以被范围内的特定整数整除

    int a b c d 0 cin gt gt a gt gt b gt gt c for int i a i lt b i if i c 0 d cout lt
  • 通过单个 GPIO 引脚转储闪存

    我正在使用 Infineon 的 XMC4500 Relax Kit 并尝试通过单个 GPIO 引脚提取固件 我非常天真的想法是通过 GPIO 引脚一次转储一位 然后用逻辑分析仪以某种方式 嗅探 数据 伪代码 while word by w
  • 在 GCC 和 Clang 下,使用 lambda 的简单 RAII 包装器的复制初始化意外失败

    我在创建一个简单的 RAII 包装器时遇到了一个意想不到的问题 更不用说下面代码的逻辑不完整性了 复制构造函数和赋值运算符未删除等 这意味着是一个SSCCE 令我印象深刻的是复制初始化我的包装器与临时 lambda 的结果会导致编译错误 而
  • F10键没被抓住

    I have a Windows Form and there overriden ProcessCmdKey However this works with all of the F Keys except for F10 I am tr
  • C 中的模仿函数重写

    具体来说 函数重写能够调用基本重写方法 这有两部分 一个是预编译的库代码 1 另一个是库的用户代码 2 我在这里实现了一个尽可能最小的经典 Person 和 Employee 示例 非常感谢了解 OOP 概念的铁杆 C 开发人员的回应 我正
  • QThread - 使用槽 quit() 退出线程

    我想在线程完成运行时通知对象 但是 我无法让线程正确退出 我有以下代码 处理器 cpp thread new QThread tw new ThreadWorker connect tw SIGNAL updateStatus QStrin
  • 数据损坏 C++ 和 Python 之间的管道

    我正在编写一些代码 从 Python 获取二进制数据 将其通过管道传输到 C 对数据进行一些处理 在本例中计算互信息度量 然后将结果通过管道传输回 Python 在测试时 我发现如果我发送的数据是一组尺寸小于 1500 X 1500 的 2
  • `cosf`、`sinf` 等不在 `std` 中 [重复]

    这个问题在这里已经有答案了 根据这里的讨论 我有报告了一个错误 https bugs launchpad net ubuntu source gcc 8 bug 1831385给 Ubuntu 开发者 编译以下示例 C 程序时 includ
  • 无法通过 LINQ to Entities 使用某些功能?

    我正在尝试使用 LINQ 查询在项目上实现搜索功能 由于数据有时包含带有重音符号和其他符号的字符 因此我创建了一种方法来删除这些字符以进行搜索 这是我的代码 var addresses from a in db Addresses join
  • 在 .NET 中记录 StackOverflowException

    最近 我的 NET 应用程序 asp net 网站 中出现了堆栈溢出异常 我之所以知道该异常是因为它出现在我的 EventLog 中 我知道 StackOverflow 异常无法被捕获或处理 但是有没有办法在它杀死您的应用程序之前记录它 我
  • 有没有更好的方法来获取每个项目与谓词匹配的子序列?

    假设我有一个 IEnumerable 例如 2 1 42 0 9 6 5 3 8 我需要获得与谓词匹配的项目的 运行 例如 如果我的谓词是 bool isSmallerThanSix int number 我想得到以下输出 2 1 0 5
  • C++ 标准中短语“构造函数没有名称”的含义

    在尝试理解 C 标准中的 构造函数没有名称 这句话时 我似乎在 clang 中发现了一个错误 有人可以证实这一点吗 VS2015 and gcc rejects this code and I think they it are is co
  • 展开路径中具有环境变量的文件名

    最好的扩张方式是什么 MyPath filename txt to home user filename txt or MyPath filename txt to c Documents and settings user filenam
  • 如何强制执行特定的 UserControl 设计

    我正在编写一个基本用户控件 它将由一堆其他用户控件继承 我需要对所有这些后代控件强制执行某种设计 例如 顶部必须有几个按钮以及一个或两个标签 后代用户控件区域的其余部分可以自由放置任何内容 最初 我认为我可以将一个面板放到 Base Use
  • 如何使用 ASP.NET Web 表单从代码隐藏中访问更新面板内的文本框、标签

    我在更新面板中定义了一些控件 它们绑定到中继器控件 我需要根据匿名字段隐藏和显示用户名和国家 地区 但问题是我无法以编程方式访问更新面板中定义的控件 我如何访问这些控件 我也在网上查找但找不到很多参考资料 下面是来自aspx页面和 cs页面
  • 创建带有部分的选项卡式侧边栏 WPF

    我正在尝试创建一个带有部分的选项卡式侧边栏 如 WPF 中的以下内容 我考虑过几种方法 但是有没有更简单 更优雅的方法呢 方法一 列表框 Using a ListBox并将 SelectedItem 绑定到右侧内容控件所绑定的值 为了区分标
  • 将文本从文本文件添加到 PDF 文件[重复]

    这个问题在这里已经有答案了 这是我的代码 using FileStream msReport new FileStream pdfPath FileMode Create step 1 using Document pdfDoc new D
  • 如何确定给定方法可以抛出哪些异常?

    我的问题和这个真的一样 找出 C 中方法可能抛出的异常 https stackoverflow com questions 264747 finding out what exceptions a method might throw in

随机推荐

  • qtcreator 在“停止”时发送的信号

    我正在 Linux 上工作 当我使用 Qt 创建者 IDE 上的 停止 按钮关闭应用程序时 我意识到我的应用程序留下了守护进程 我想处理这些情况 以便应用程序以与关闭主窗口相同的方式关闭 要编写处理程序 我需要知道它对应于哪些信号 深入研究
  • 使用 rowindex 从 JTable 检索行数据

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何从 a 中检索行数据JTable
  • Jetpack Compose 应用程序无法在 AVD 上启动

    我已经使用编写了一个示例Jetpack Compose然后每当我尝试Install它在一个AVD gradle 构建Project成功 但内置应用程序未启动 关于工具和代码的一切都很好 甚至Preview shows UI好吧 如果我自己手
  • 使用ajax保存wordpress设置api选项,

    我已经和这个问题斗争了一段时间了 我有一个主题的选项页面 并注册了一个选项 我一直试图在每次用户按下保存按钮时通过ajax更新选项 这是我的代码 JS function save main options ajax main options
  • MySQL MATCH AGAINST 不起作用

    我实际上正在开发一个网站 其中有两个几乎相同的表 其中 MATCH AGAINST 在一个表上有效 但在另一个表上无效 为了找出为什么我试图将其简化为一个简单的问题 让我们制作一个简单的表格 但事实并非如此 我正在使用 phpMyAdmin
  • typeid(T) 是在运行时还是编译时评估?

    我无法在任何地方找到这个看似简单的问题的答案 以下 C 函数是否使用 RTTI 当然不必 但我想知道是否可以保证 typeid 将在编译时确定 template
  • WaitAndRetryPolicy 与 BulkheadPolicy 结合,优先重试。是否可以?

    我正在评估Polly https github com App vNext Polly 库的功能和灵活性方面 作为评估过程的一部分 我试图将WaitAndRetryPolicy与BulkheadPolicy政策 以实现弹性和节流的结合 问题
  • 使用 Jackson 解析 Java 中的 JSON 子集

    给定一个 Json 是否可以使用 Jackson 只解析出消息的一部分 假设我感兴趣的数据埋藏在深层的字段层次结构中 并且我根本不关心为每个类创建 DTO 类 给定一个非常简单的场景 我想对 Telephone 类进行建模 而不了解其之前的
  • CUDA 错误:调用 cublasCreate(handle) 时出现 CUBLAS_STATUS_ALLOC_FAILED

    当我在 Google Colab 中运行 PyTorch 深度学习模型时 出现以下错误 usr local lib python3 6 dist packages torch nn functional py in linear input
  • 如何使用 Selenium 和 Python 在信用卡号字段中输入日期?

    我正在尝试制作一个脚本来自动在 Shopify 网站上结帐 当我尝试填写要求信用卡的字段时 硒不允许我将密钥发送到该字段中 并表示该元素不可交互 我已经尝试单击它 但它仍然不允许我输入信息 有人知道该怎么办吗 driver find ele
  • Gradle 与编译器

    据我了解 Gradle 是 Android Studio 的包生成器 它在构建时整理与项目相关的资源 源代码和配置文件 但它也会编译代码吗 或者它将资源和依赖项转换为某种形式的可编译代码 然后将其发送给编译器 从我一直在做的所有阅读来看 这
  • 如何在 Xamarin Android 中使用 ActivityResultContract?

    我试图在 Xamarin 中使用 AndroidX 的 ActivityResultContract 但找不到任何相关文档或信息 我已经在本机android中实现了ActivityResultLauncher ActivityResultC
  • 强制 xml 返回某些 Web api 控制器,同时保持默认 JSON

    我们正在做一些 azure 商店集成 其资源提供程序代码要求我们使用 xml 作为返回格式化程序 然而 我们只想将 XML 与 Azure 内容一起使用 而保留默认的 JSON 格式化程序 那么 有谁知道如何强制特定控制器 方法的 Web
  • 优先队列应用程序

    优先级队列数据结构的计算机应用有哪些 我想了解使用优先级队列的计算机进程或计算机应用程序 我知道一个这样的应用程序 我们可以在打印机缓冲区中使用优先级队列 例如 假设有 3 个优先级 用户在发出打印命令之前需要指定他 她的优先级 因此 缓冲
  • SQL Server:“找不到数据库引擎启动句柄”[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 尝试从以下位置安装 SQL Server Express 2016 时 here https dev mysql com download
  • Railsbrakeman命令sql注入

    从参数构造 order 方法时 如何避免 Rails 中出现刹车警告 def index methods name manager deadline assignments Assignment order sort column meth
  • 如何使用 Selenium IDE 测试 jQuery UI 滑块小部件?

    我们正在使用jQuery UI 滑块小部件 http jqueryui com demos slider 在我们的 Web 应用程序中 我们希望使用以下命令自动测试 UI硒集成开发环境 http seleniumhq org project
  • std::min 的参数顺序会更改浮点的编译器输出

    我在编译器资源管理器中摆弄 发现传递给 std min 的参数顺序更改了发出的程序集 这是 Godbolt Compiler Explorer 上的示例 https godbolt org g g g h codeEditor i font
  • sbt和antlr,有简单的例子吗?

    有没有人有如何设置 sbt 来构建 ANTLR 文件 到 scala 然后编译生成的代码的示例 我的文件布局 src main scala Test scala scala test rig src main scala Test g an
  • 未定义功能传感

    我正在尝试使用 GCC 编译器执行此操作 这可能吗 指定一个函数 但该函数如果未实现则指向 NULL 例子 extern void something uint some 如果未实现 则指向 NULL 值 所以可以这样检查 somethin