c - 这个是铸件吗,这是什么运算符
问题描述
data_ptr = (struct db_table_s *) &(db_table[0]);
我有一行这样的代码,在 C 中,这段代码是做什么的?它是类型转换还是按位运算符?
struct db_table_s
{
unsigned short int d_event_code;
int (*db_read__image)(),
(*db_write_image)();
};
const struct db_table_s db_table[] =
{
{ DB_seq1,
_read_func,
_write_func,
},
{ DB_seq2 ,
_read_func1 ,
_write_func2,
}
};
解决方案
演员表的存在只是为了将const address转换为non const address。
db_table
是 的向量const struct db_table_s
,db_table[0]
则为 a const struct db_table_s
,&(db_table[0])
则为 aconst struct db_table_s *
可能代码希望(非常)在我们拥有该指针时记住该指针,struct db_table_s * data_ptr;
因此需要强制转换以避免警告。
演员阵容在以下情况下是无用的const struct db_table_s * data_ptr;
PS 在您的代码中缺少 ',' 和 ';' :-(
推荐阅读
- ruby-on-rails - Rails:对 Rack::Timeout::RequestTimeoutException 进行故障排除
- symfony - 如何使用 RabbitMQ 对 API 请求进行排队
- python - 使用 MNIST 数据格式进行机器学习分类?
- apache - 如果使用任何 IE 浏览器,将网站的所有页面重定向到页面 - htaccess
- android - 尝试在空对象引用上调用虚拟方法“java.lang.Object org.appcelerator.kroll.KrollDict.get(java.lang.Object)”
- node.js - Typeorm 连接终止
- node.js - 如何确保我的 node.js 处理程序在返回值之前完成 api 调用?
- reactjs - mapDispatchToProps 的参数未定义
- android - ASN.1编码例程:OPENSSL_internal:HEADER_TOO_LONG
- azure-active-directory - 适用于仅云组的 Microsoft Graph API 筛选器