c - 在 c 中使用赋值定义函数指针
问题描述
我正在学习 C。我知道第一行在做什么;它正在创建一个指向没有参数的函数的指针,并返回一个 int。但是wtf是第二个在做什么?
我的猜测是它将 int 转换为函数?但是将 int 转换为函数意味着什么?另外,为什么我尝试调用函数时会导致错误:'function()'?
int (*function) ();
function = (int (*) ()) (1000);
解决方案
总的来说,代码是胡说八道。你是从哪里弄来的?
它正在创建一个指向没有参数的函数的指针
相反,它正在创建一个指向具有过时样式参数列表的函数的指针。
但是wtf是第二个在做什么?
它将函数指针分配为指向地址 1000(十进制),这是我从 int 转换为函数指针类型的方法。
为什么当我尝试调用函数时会导致错误:'function()'?
可能是因为在地址 1000 上没有分配这样的功能。您甚至可能无法访问该区域等。
推荐阅读
- php - 从 db 中选择不同的值
- java - 使用资源加载器加载文本文件时出现 Java NoSuchElementException
- javascript - 在服务器上成功授权令牌后向前端发送什么?
- visual-studio-code - VSCode 主题将样式应用于所有子项
- django - 使用 Django 分页重复标题标签
- r - 在R中反转匹配操作
- ruby-on-rails - Rails 5.1 - 如何为 Bootstrap 4 自定义表单验证设置“novalidate”?
- ios - 可以在模拟器上构建和运行,但不能存档
- firebase - 如何在 Flutter 中设置不同的 firebase 环境
- fiddler - 为什么 Fiddler 不显示此活动?