struct和sizeof的数组

 张小白 发布于 2022-12-19 23:40

我想用C语言编写(没有特别的味道,比方说c11)一个通用的全局const数组结构,如下面的伪代码:

void * generic[] ={&(struct a va),&(struct b vb)};

现在我想创建一个函数,给定所需结构的位置的id(我打算为每个id使用const,硬编码),将复制它.

因为那copy()也是通用的(接受一个void *目的地),它需要知道严格的大小,可能由调用者指定(很多容易出错,他已经需要提供目标结构和正确的id)或者我也会sizeof为每个结构维护一个正确的并行数组.

有没有办法在编译时自动化sizeof数组的初始化?或者甚至实现某种技巧让用户指定只是将指针传递给没有id的struct,而不必编写专门的get_struct_x()

不允许动态分配(alloc(),局部变量很好),所有struct和generic数组内容在编译时都是已知的.

对不起我的错误解释,随时改进/纠正它.

编辑以澄清:我需要从存储了许多结构类型的数组深层复制已知的结构类型,但相同的类型永远不会重复.我需要从一个通用的get函数中执行它将从不同的线程调用,因此在复制之前和之后将锁定一个互斥锁,并且我希望将所有锁定和转换代码保存在一个点上,以最小化调试和创建更有效的测试.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有