Linux C 编程学习第五天_数据类型标志

数据类型标志

接上次数据抽象最后的问题,我需要一个数据标志,1就表示数据是极坐标,0就表示数据是直角坐标,这样在运算的时候,就不会数据转换造成精度损失,也不用调用不同的运算函数来计算了。

在开始这个之前,需要枚举 enum 的概念:

 枚举 enum 和 struct 关键字很类似,enum XXX  用来表示一个枚举类型,枚举类型的成员是常量,他们的值编译器自动分配:

Linux C 编程学习第五天_数据类型标志

 

 

 默认是从0开始分配,如果给第一个赋值,那么就会从那个值开始,数据类型是int

所以上述代码:num1   num2  num3  num4  num5   的值分别为,0  1  2   1  2   

另外要注意,枚举成员的名字和变量的名字是在统一命名空间的 ,这点和结构体不同

构建复数格式枚举:

Linux C 编程学习第五天_数据类型标志

好,这里我们就可以实现我们目的了,在之前的两种构建复数函数中添加一个新的结构体变量:

Linux C 编程学习第五天_数据类型标志

 

 Linux C 编程学习第五天_数据类型标志

在构建复数函数中也进行修改:

Linux C 编程学习第五天_数据类型标志

 

 Linux C 编程学习第五天_数据类型标志

 

 这样两个构建复数的函数都带上了标签,z.t 为0就是 a + bi 格式,为1就是极坐标格式。

对运算函数加一行判断标志

Linux C 编程学习第五天_数据类型标志

 

 这样修改之后的函数,不需要直到输入的复数是什么格式的,都可以计算出正确的实部。

同理其他运算函数都做类似添加,函数接口没有发生改变,但是运算函数却可以兼容不同的复数格式了。

 

至此,结构体告一段落。

Linux C 编程学习第五天_数据类型标志

上一篇:创建控制文件副本出现错误ORA-00205: error in identifying control file


下一篇:秒懂云通信:号码隐私服务如何保护你的信息安全?