c – 施放到联盟
发布时间:2020-12-16 09:48:38 所属栏目:百科 来源:网络整理
导读:由于在C中的工会经验有限,我很难理解转换为该数据类型的基本机制. 假设Type_a和Type_b两种类型分别是int和long类型的包装器. 联合定义为: union Type_u { Type_a a; Type_b b;} 现在我有类型Type_a的东西,让我们称之为j(只是让人困惑).我需要将它传递给一个
由于在C中的工会经验有限,我很难理解转换为该数据类型的基本机制.
假设Type_a和Type_b两种类型分别是int和long类型的包装器. 联合定义为: union Type_u { Type_a a; Type_b b; } 现在我有类型Type_a的东西,让我们称之为j(只是让人困惑).我需要将它传递给一个期望Type_u类型的参数的函数: void burninate(Type_u peasants); 将此变量j传递给burninate的正确方法是什么? (我遇到了将j转换为Type_u以及按原样传递它的问题.都没有编译.) 值得指出的是,我没有能力修改联合类型(或Type_a或Type_b或者burninate的签名). 解决方法
由于Type_a是第一个元素,您可以像这样初始化一个联合:
Type_a j; Type_u u = {j}; burninate(u); 如果要传递Type_b类型: Type_b k; Type_u u; u.b = k; burninate(u); C和C在这方面有所不同.在C99中,您可以使用指定的初始化程序来初始化不是第一个的元素. Type_b k; Type_u u = {.b = k}; burninate(u); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |