typedef语句和数据类型转换

1.typedef语句

objective c允许编程者微数据类型另外指派一个名称。

使用typedef语句的好处主要是增加了程序的可读性。用传统方法不能够清晰表示出变量的用途。

例如:

typedef Number *NumberObject;

则如下语句:

NumberObject   myValue1,myValue2,myResult;

等价于:

Number *  myValue1,myValue2,myResult;

语句。

若要使用typedef语句定义一个新类型名,可按照下面的步骤:

1)像声明所需类型的变量那样编写一条语句。

2)在通常应该出现声明的变量名的地方,将其替换为新的类型名。

3)在语句的前面加上关键字typedef。

例如:

typedef enum {east, west,south,north}Direction;

Direction step1,step2;

2.数据类型转换

不同数据类型的数据是可以转换成同一种数据类型,然后进行计算。转换的方法有两种,一种是自动转换,一种是强制转换。自动转换发生在不同数据类型的数据混合运算时,由系统自动完成。Objective-C 编译器会遵循一些非常严格的规则,编译器按照下面的顺序转换不同类型的操作数。

1.如果其中一个数是long double类型的,那么另一个操作数被转换为long double类型,计算的结果也是long double类型。

2.否则,如果其中一个数是double类型的,那么另一个操作数被转换为double类型,计算的结果也是double类型。

3.否则,如果其中一个数是float 类型的,那么另一个操作数被转换为float 类型,计算的结果也是float类型。

4.否则,如果一个数是unisigned类型,那么另一个操作数被转换为unisigner 类型,计算的结果也是unisigner类型。

5.否则,如果其中一个数是long long int 类型,那么另一个操作数被转换为long long int 类型,计算的结果也是long long int 类型。

6.否则,如果其中一个数是long int类型,那么另一个操作数被转换为long int类型,计算的结果也是long int类型。

7.否则,如果其中一个数是int类型,那么其他的如Bool、char、short int、bit field、枚举类型,则全部转换为int 类型,计算的结果也是int类型。

8.unsigned 一般比同级的整形 类型高两个级别。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个使用Freetds中dbbind函数将常规结果列绑定到数据类型是float的程序变量的示例代码: ```C // 定义一个DBBINARY类型数据结构体 typedef struct { BYTE* data; // 数据指针 DBINT len; // 数据长度 } DBBINARY; // 定义一个float类型的变量 float value; // 将结果集中的二进制数据绑定到DBBINARY类型数据结构体中 DBBINARY dbvalue; int ret = dbbind(dbproc, 1, DBBINARYBIND, sizeof(DBBINARY), (BYTE*)&dbvalue, 0); // 执行SQL语句,获取结果集 ret = dbfcmd(dbproc, "SELECT value FROM tablename"); ret = dbsqlexec(dbproc); // 遍历结果集,将DBBINARY类型数据转换为float类型数据 while ((ret = dbresults(dbproc)) != NO_MORE_RESULTS) { while (dbnextrow(dbproc) != NO_MORE_ROWS) { if (dbvalue.len > 0) { // 将二进制数据复制到float类型的变量中 memcpy(&value, dbvalue.data, sizeof(float)); printf("value: %f\n", value); } } } // 释放内存空间 dbexit(); ``` 在上面的代码中,首先定义了一个DBBINARY类型数据结构体和一个float类型的变量。然后使用dbbind函数将结果集中的二进制数据绑定到DBBINARY类型数据结构体中。接着执行SQL语句,获取结果集,并遍历结果集,将DBBINARY类型数据转换为float类型数据。最后释放内存空间。 需要注意的是,上面的示例中只绑定了一个结果列。如果有多个结果列需要绑定,需要在dbbind函数中设置不同的列号和目标变量的指针。另外,如果结果列的数据类型不是二进制类型,则需要根据实际情况设置buftype参数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值