C 脚本如何处理不兼容的数据
C 脚本如何处理不兼容的数据
scadafaq
个人公众号『ScadaFAQ』,作者:RobinLiu,分享自控scada技术相关内容(在公众号底部菜单查看更多精彩内容)。
以下文章来源于WINCC脚本专栏 ,作者robinliu
本公众号分享WINCC ANSI-C VBScript JavaScript VBA 脚本相关内容
1
指针
如下,定义了一个指向整型变量的指针变量 point1
int
*point1;
int
*point1;
float
a;
point1 = &a;
//将float型变量的地址放到指向整型变量的指针变量中,错误。
众所周知,C语言中不同类型的数据在内存中所占用的字节是不相同的。 “基类型”会影响指针的移动和指针的运算(加、减)。
下面是两个与指针变量相关的运算符:
〔1〕 & :取地址运算符。
〔2〕 * :指针运算符(或称“间接访问运算符”),取其指向的内容。
2
交换浮点数高低字
float
a,b;
unsigned
int
hexValue =
0x70A43F9D
;
// 使用联合将uint32_t转换为float
union
{
unsigned
int
i;
float
f;
} converter;
converter.i = hexValue;
a = converter.f;
接 着 如下: 借助指针交换a高低字后的结果存入b
*((
unsigned
short
*)&b) = *((
unsigned
short
*)&a+
1
);
*((
unsigned
short
*)&b+
1
) = *((
unsigned
short
*)&a);
说明: 先使 用 &a 获得变量的地址(如为0x00A00001,起的4个字节,因为x86为小端存取,所以a的低字值0x3F9D存储在变量起始地址的低地址0x00A00001~0x00A00002,高字值0x70A4存储在0x00A00003~0x00A00004)。
-
2023年血糖新标准公布,不是3.9-6.1,快来看看你的血糖正常吗? 2023-02-07
-
2023年各省最新电价一览!8省中午执行谷段电价! 2023-01-03
-
GB 55009-2021《燃气工程项目规范》(含条文说明),2022年1月1日起实施 2021-11-07
-
PPT导出高分辨率图片的四种方法 2022-09-22
-
2023年最新!国家电网27家省级电力公司负责人大盘点 2023-03-14
-
全国消防救援总队主官及简历(2023.2) 2023-02-10
-
盘点 l 中国石油大庆油田现任领导班子 2023-02-28
-
我们的前辈!历届全国工程勘察设计大师完整名单! 2022-11-18
-
关于某送变电公司“4·22”人身死亡事故的快报 2022-04-26
