首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用类型'struct s_action (*)‘初始化类型'enum Zahlen’时,出现不兼容类型时出错

在这个问答内容中,出现了一个错误,即在使用类型'struct s_action (*)‘初始化类型'enum Zahlen’时,出现了不兼容类型的错误。

首先,我们来解释一下这个错误的原因。在C语言中,结构体(struct)和枚举(enum)是两种不同的数据类型。结构体是一种自定义的复合数据类型,可以包含多个不同类型的成员变量;而枚举是一种用于定义一组命名常量的数据类型。在这个错误中,我们试图使用一个指向结构体的指针来初始化一个枚举类型的变量,这是不兼容的,因为它们是不同的数据类型。

要解决这个错误,我们需要根据实际需求来修改代码。如果我们想要将结构体的某个成员变量的值赋给枚举类型的变量,可以通过使用强制类型转换来实现。例如:

代码语言:c
复制
struct s_action {
    // 结构体的成员变量
};

enum Zahlen {
    // 枚举的常量
};

struct s_action s;
enum Zahlen z;

// 使用强制类型转换将结构体成员变量的值赋给枚举类型的变量
z = (enum Zahlen)s.some_member;

需要注意的是,强制类型转换可能会导致数据类型不匹配或数据丢失的问题,因此在使用时要谨慎。

关于云计算和IT互联网领域的名词词汇,这里提供一些常见的概念和相关产品介绍:

  1. 云计算(Cloud Computing):一种通过网络提供计算资源和服务的模式,包括基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)等形式。
  2. 前端开发(Front-end Development):负责开发和维护用户界面的技术和工作,包括HTML、CSS、JavaScript等。
  3. 后端开发(Back-end Development):负责处理服务器端逻辑和数据的技术和工作,包括服务器端编程语言和数据库等。
  4. 软件测试(Software Testing):通过验证和验证软件的正确性、完整性和质量的过程。
  5. 数据库(Database):用于存储和管理结构化数据的系统,如MySQL、MongoDB等。
  6. 服务器运维(Server Operations):负责管理和维护服务器的运行和性能。
  7. 云原生(Cloud Native):一种构建和运行在云环境中的应用程序的方法论和技术栈。
  8. 网络通信(Network Communication):在计算机网络中传输数据和信息的过程和技术。
  9. 网络安全(Network Security):保护计算机网络和系统免受未经授权的访问、攻击和损害的过程和技术。
  10. 音视频(Audio-Visual):涉及音频和视频处理、编码、传输和播放等技术。
  11. 多媒体处理(Multimedia Processing):涉及图像、音频、视频等多媒体数据的处理和编辑技术。
  12. 人工智能(Artificial Intelligence):模拟和模仿人类智能的理论、方法和技术。
  13. 物联网(Internet of Things, IoT):将各种物理设备和对象连接到互联网的网络。
  14. 移动开发(Mobile Development):开发和构建移动应用程序的过程和技术。
  15. 存储(Storage):用于存储和管理数据的设备和系统,如对象存储、文件存储等。
  16. 区块链(Blockchain):一种去中心化的分布式账本技术,用于记录和验证交易。
  17. 元宇宙(Metaverse):虚拟现实和增强现实技术结合的虚拟世界,提供沉浸式的用户体验。

希望以上信息能对您有所帮助!

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Effective Modern C++翻译(7)-条款6:当auto推导出意外的类型使用显式的类型初始化语义

条款6:当auto推导出意外的类型使用显式的类型初始化语义 条款5解释了使用auto来声明变量比使用精确的类型声明多了了很多的技术优势,但有的时候,当你想要zag的时候,auto可能会推导出了zig...bool对象,每一个bit代表一个bool对象,这使得std::vector的[]运算符出现了问题,因为std::vector的[]运算符应该返回T&类型的对象,但是C++禁止返回对位对象的引用...,我把这个叫做显式的类型初始化语义(explicitly typed initializer idiom) 显式的类型初始化语义包括用auto声明一个变量,但是加上一个你想要auto推导出的初始化类型,...,而使用显式的类型初始化语义可以: auto ep = static_cast(calcEpsilon()); 如果你拥有一个float类型的表达式,但是你把它储存为一个整型的变量,也可以使用这个方法...显式的类型初始化语义会迫使auto推导出你想要的类型

1.2K100
  • C++核心准则编译边学-F.19 对于只传递处理的参数,使用模板类型TP&&并在传递使用std::forward

    F.19: For "forward" parameters, pass by TP&& and only std::forward the parameter(对于只传递处理的参数,使用模板类型TP...&&并在传递使用std::forward) Reason(原因) If the object is to be passed onward to other code and not directly...,首先被实参初始化,其结果是实参将无效化(右值引用的定义)。...TP&&类型的参数本质上总是应该在函数体中通过std::forward继续传递的。 译者注:最终还是要被某段代码作为左值使用的。...在下面情况下发出警示:对于函数使用TP&&类型参数(这里TP是模板类型参数名),除了在所有静态路径上精确地执行一次std::forward操作以外执行了任何(针对改参数的)其他处理。

    1.2K00

    【笔记】《深入理解C++11》(上)

    POD需要满足以下条件: 平凡(Plain)限制: 与memset兼容的默认的构造和析构函数 与memcpy兼容的拷贝, 移动, 赋值, 移动赋值函数 包含虚函数和虚基类 标准布局(Old)限制: 所有非静态成员有相同的访问权限...failure, 不会引发error, 直到完成所有尝试 基础来说, SFINEA使得模板实例化的过程在各个编译器上都能表现出一样的效果, 且避免在不相关模板可见实例化出错误的程序...., 必须被初始化 auto本质上是一个类型占位符, 在编译的时候推导出类型然后以类似字面替换的方式进行使用 auto和cv限制符(cv-qualifier, 指const和volatile)一起使用时,...也就是decltype一个const对象, 尽管对象本身的const类型能被获取, 但是从这个对象中取出成员的const会丢失 5 提高类型安全 强类型枚举 普通的枚举enum代表对应到整数值的一些名字...而且由于其本质是常量数值的原因, enum成员总是可以被隐式转换为整型, 这很容易导致比较两个不同的枚举名称出现错误的结果 C++11之前会通过类结构将枚举封装, 并建立新的转换和比较函数覆盖原先的操作

    1.9K20

    深入浅出 FlatBuffers 之 Schema

    有些情况下可能不会出错,但必须小心。 table { aa:int; bb:int; } 复制代码 上面这种修改方法,修改原来的变量名以后,可能会出现问题。...由于已经重命名了字段,这将破坏所有使用此版本 schema 的代码(和 JSON 文件),这与实际的二进制缓冲区兼容。...一旦一个类型声明了,尽量不要改变它的类型,一旦改变了,很可能就会出现错误。上面也提到过了,如果把 int 改成 uint,数据如果有负数,那么就会出错。 4....如果一个字段是整数类型的,你仍然可以使用符号名称,但是这些值需要以它们的类型作为前缀,并且需要用引号引起来。field:“Enum.EnumVal”。...可以统一处理模式和数据定义(并且和 JSON 兼容)的解析器。protocol buffers 兼容 JSON。

    3.9K20

    C++与C的区别终于说清楚了!

    例如,如果一个系统中的int是4字节,就可以这样编写C代码: int x = 'ABCD'; /*对于int是4字节的系统,该语句出现在C程序中没问题,但是出现在C++程序中会出错 */ 'ABCD'表示一个...point lowerright; }; 在C中,随后可以使用任意使用这些结构,但是在C++中使用嵌套结构使用一个特殊的符号: struct box ad; /* C和 C++都可以...特别是,只能把enum常量赋给enum变量,然后把变量与其他值作比较。不经过显式强制类型转换,不能把int类型值赋给enum变量,而且也不能递增一个enum变量。...— 10 — 复数类型 C++在complex头文件中提供一个复数类来支持复数类型。C有内置的复数类型,并通过complex.h头文件来支持。这两种方法区别很大,兼容。...在C++中,如果一个内联函数多次出现在多个文件中,该函数的定义必须相同,而且要使用相同的语言记号。例如,不允许在一个文件的定义中使用int类型形参,而在另一个文件的定义中使用int32_t类型形参。

    87010

    C语言重点突破(四)自定义类型详解

    上面是常规的声明,缺点是每次定义都要将struct关键字写入,影响编写效率,下面有一种特殊的声明,此时省略了结构体标签(匿名结构体类型,只能使用一次) //匿名结构体类型 struct { int...可以试着编译一下,运行是没有问题的,但编译器会报警告,尽管两个结构体组成是一样的,但编译器会把它们当作不同的类型进行编译,这种做法建议。...当使用传变量方式,参数是变量本身。这意味着函数将使用变量的副本进行操作,并不会直接改变原始变量。这种方式通常用于不需要修改变量的情况,或者对变量进行操作不需要改变原始值的情况。...因此,使用位段需要仔细考虑其适用性和安全性。...3.枚举的使用 enum Color//颜色 { RED=1, GREEN=2, BLUE=4 }; enum Color clr = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异

    20810

    C语言进阶(十一) - 自定义数据类型

    前言 C语言中本身包含了许多数据类型,但并不能够总是满足需要。自定义类型允许使用者创造出特定的且适合需要的类型。本文主要介绍结构体、位段、枚举与联合。 ---- 1....struct Node n = {10, {"tangsheng", 1002}, NULL};//结构体嵌套定义与初始化 1.4 结构体变量的大小 - 结构体内存对齐 结构体是一些值的集合,定义一个结构体变量...位段涉及很多不确定因素,是跨平台的,注重可移植的程序应该避免使用位段。...生活中有许多事物可以一一列举:星期、月份等…… 3.1 枚举类型的定义 与结构体相似: 关键字enum enum tag{//标签(枚举名enum tag) constant_list,//枚举常量...,虽然值是1,但是类型匹配,在c++编译下不能通过编译。

    43110

    【C语言】 C 语言 关键字分析 ( 属性关键字 | 常量关键字 | 结构体关键字 | 联合体关键字 | 枚举关键字 | 命名关键字 | 杂项关键字)

    区别 ( #define 编译进行替换 | enum 是常量值 ) 2. typedef 关键字 ( 1 ) typedef 关键字介绍 ( 给已有类型重新命名 | 没有新类型 | 无法扩展 )...#include //使用auto修饰全局变量,编译直接报错,因为auto代表存储在栈中, 全局变量存储在全局区, 因此auto只能修饰局部变量, 这里出现错误, 直接注释掉. auto...: 1.代码 : #include //使用auto修饰全局变量,编译直接报错,因为auto代表存储在栈中, 全局变量存储在全局区, 因此auto只能修饰局部变量, 这里出现错误,..., 之后每次使用, 都不再进行初始化操作....void; 2.修饰参数 : 如果函数 没有参数, 即接收参数, 其参数类型就写成 void; 3.本质 : 使用 void 修饰 返回值 和 参数, 其本质就代表没有; void 类型大小C语言规范没有规定

    2.4K20

    深入浅出FlatBuffers原理

    这里的使用是互斥的,即这块内存区域只能由其中一种类型使用。相对 struct 来说比较节省内存。...对于 struct 结构因为没有使用 vtable 结构,因此内部的标量没有默认值,必须存储(struct 类型和 table 类型的序列化原理在下文会详细说明)。...2 Struct 类型 除了基本类型之外,FlatBuffers 中只有 Struct 类型使用直接寻址进行数据访问。...数据存储结构如下: 示例:byte[] treasure = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; vector size 的类型为 int,因此在初始化申请内存 vector...string 写入数据的结构如下: 示例:string name = “Sword”; vector size 的类型为 int,因此在初始化申请内存字符串进行四字节字节对齐。

    1.1K30

    通过RealSense代码说明一些C语言问题

    在创建上下文对象,还传递了一个错误处理器(error-handler)的地址 &e,以便在运行时捕获可能出现的错误。 如果发生someError,会通过*e = ...将e设置为相应的错误码。...可以说rs2_context实例已经被初始化并设置好了,但不能直接说 rs2_context 里面是一个已经初始化过的结构体,因为 rs2_context 只是一个指针类型,并不存储任何数据。...动态内存分配:当需要动态创建一个结构体对象,需要使用结构体指针来指向该对象。在动态分配内存使用结构体指针可以确保只分配所需的内存,并且可以方便地释放分配的内存。...exception_type:错误类型,很可能是一个enum,表示出错的原因。这个结构体通常用来表示异常信息,或是库函数调用后的错误详情。...分配的内存未初始化,需要手工初始化 person 对象的各个字段。 使用malloc()获取内存,强制类型转换为需要的指针类型,使用后释放内存。

    57331

    IOS-swift5.1快速入门之旅

    作为函数的最后一个参数传递的闭包可以在括号后面立即出现。当闭包是函数的唯一参数,可以完全省略括号。...sideLength 枚举和结构 使用enum创建一个枚举。与类和所有其他命名类型一样,枚举可以具有与之关联的方法。...您还可以使用字符串或浮点数作为枚举的原始类型使用该rawValue属性可以访问枚举案例的原始值。 使用init?(rawValue:)初始化程序从原始值创建枚举的实例。...使用struct创建的结构。结构支持许多与类相同的行为,包括方法和初始化器。结构和类之间最重要的区别之一是结构在代码中传递总是被复制,但类是通过引用传递的。...您可以像使用任何其他命名类型一样使用协议名称 - 例如,创建具有不同类型但都符合单个协议的对象集合。使用类型为协议类型的值,协议定义之外的方法不可用。

    2.1K20

    C#基础知识大总结(在C语言的基础上)

    arr数组当中 注意: params关键字后面必为数组 数组的类型可以是任意一个类型 函数参数可以有别的参数和params修饰的参数 函数参数中最多只能出现一个params 并且一定要是放在最后的参数...arr) {     //利用for循环求数组内的数字和即可 } //调用时 Sum(1,2,3,4,5,6);//可以传任意多个参数 2.参数默认值 有参数默认值的参数一般称为可选参数 当调用函数可以传入参数...,传就会使用默认值 如果要混用 那么可选参数必须写在普通参数后面 static void Speak(string str = "还没有话语") {     console.WriteLine(str...); } //调用时可以传入参数 Speak(); 六、函数重载 要求: 同一语句块(class或struct) 函数名相同 参数数量不同 参数数量相同但类型或顺序不同 static int CalSum...(int a,int b) { } //这两个函数也不能同时出现,即使其中一个用的是可选参数 static int CalSum(int a , int b = 1) { } 七、结构体 结构体一般写在

    20720

    C语言进阶—自定义类型:结构体,枚举,联合

    x; int y; }p1 = {1,2};//声明类型的同时定义变量p1 struct Point p3 = {4,5};//初始化:定义变量的同时赋初值 struct Stu//类型声明 {...位段涉及很多不确定因素,位段是跨平台的,注重可移植的程序应该避免使用位段。 为什么为三个字节呢? 位段的跨平台问题 1. int 位段被当成有符号数还是无符号数是不确定的。 2....使用方便,一次可以定义多个常量 3.枚举的使用 只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。...不能 clr = 5; enum Color//颜色 { RED=1, GREEN=2, BLUE=4 }; enum Color clr = GREEN;//只能拿枚举常量给枚举变量赋值,才不会出现类型的差异...某些成员不会在同一使用 图书:库存量、价格、商品类型书名、作者、页数 杯子:库存量、价格、商品类型,设计 衬衫:库存量、价格、商品类型没计、可选颜色、可选尺 以上数据可综合为

    8210

    C语言共用体与枚举类型-学习三十

    由于结构体变量的每个成员拥有不同的内存单元,因而不会出现这种情况。...sun , mon ,tue , wed , thu , fri , sat }workday; 3.指定枚举类型名,直接定义枚举变量 enum {...枚举类型使用时需注意以下几点: 1.枚举元素是常量,有固定的值,不能将其作为变量使用 例如: sun=0; mon = 1 错误,不能为枚举元素赋值 2.每一个枚举元素都代表了一个整数,编译程序按定义的顺序默认它们的值为...3.如果希望使用默认的值,也可以在声明数据类型指定值。 例如 指定枚举元素sun的值为7,mon的值为1,tue的值为2,以后顺序加1,sat为6。...5.当不同源文件中用到同一类型数据(数组、结构体等),常用typedef声明一些数据类型。把它们单独放在一个头文件中。 6.使用typedef名称有利于程序的通用与移植。

    54210

    46 道 Swift 常见面试题解

    的作用 28、lazy 的作用 29、一个类型表示选项,可以同时表示有几个选项选中(类似 UIViewAnimationOptions ),用什么类型表示 30、inout 的作用 31、Error 如果要兼容...基础题解答区 ---- ▐ 2.1 class 和 struct 的区别 class 为类, struct 为结构体, 类是引用类型, 结构体为值类型, 结构体不可以继承 ▐ 2.2 不通过继承,代码复用...有两种情况会抛出错误, 一种是直接使用 throw 抛出, 另一种是调用其他抛出异常的函数, 直接使用 try xx 没有处理异常....,可以同时表示有几个选项选中(类似 UIViewAnimationOptions ),用什么类型表示 需要实现自 OptionSet, 一般使用 struct 实现...., 圆括号也可以省略 闭包没有声明函数参数, 返回值类型, 数量, 依靠的是闭包类型的自动推断 闭包中语句只有一句, 自动将这一句的结果作为返回值 ▐ 2.33 什么是高阶函数 一个函数如果可以以某一个函数作为参数

    4.9K33

    《CLR via C#》笔记:第3部分 基本类型(2)

    ; //示例 //因为Orange定义为4, 'c'被初始化为4 color c = (color)Enum.Parse(typeof(Color),"orange",true) ; //因为没有定义...Copy方法还能在复制每个数组元素进行必要的类型转换,具体如下所述:(P334 1) 1、将值类型的元素装箱为引用类型的元素,比如将一个Int32[]复制到一个ObjectI]中。...4、在两个数组之间复制,如果仅从数组类型证明不了两者的兼容性,比如从 Object[转型为IFormattable[],就根据需要对元素进行向下类型转换。...System.Buffer的BlockCopy支持同类型数组的简单复制。 System.Array的ConstrainedCopy支持复制失败的抛出异常操作。...(P336 3) 数组的传递和返回 Array.Copy:浅拷贝(对引用类型直接传递回引用对象)(P337 4) 创建下限非零的数组 推荐使用捏。

    78610

    【C语言】自定义类型(结构体、位段、枚举、联合体)

    在这个结构体后面的代码,才可以使用重定义之后的名字 1.4结构体变量的定义和初始化 struct Point { int x; int y; }p1; //声明类型的同时定义变量p1 struct...比如位段成员是int,则每次开辟4字节的空间,若是char,则每次开辟1字节的空间 3.位段涉及很多不确定性因素,位段是跨平台的,如果注重可移植性程序的话,那应该尽量避免使用位段 2.2.2位段存储...,内存的使用方式 1.在vs环境中,char类型存储,内存使用方式是先用掉字节的低位,再用掉字节的高位,当字节中的剩余比特位不够,操作系统会开辟新的字节用于存储位段成员 2.在vs环境中,int类型存储...: 我们不可以向下面这样写代码 enum color c = 2;//因为枚举类型和整型类型兼容的,代码有错误 3.2枚举类型的优点 我们明明可以使用#define定义,但为什么要搞一个枚举类型捏?...使用起来更加方便,不会重复多次定义#define,产生代码冗余 3.2枚举类型使用 enum Color//颜色 { RED=1, GREEN=2, BLUE=4 }; enum Color clr

    57430
    领券