any指针多少位,请教ANY与VARIANT数据类型的联系和区别
来源:整理 编辑:亚灵电子网 2023-10-27 03:54:55
本文目录一览
1,请教ANY与VARIANT数据类型的联系和区别
1、ANY和VARIANT都是指针型数据类型,西门子300/400/1500支持ANY类型,1200/1500支持VARIANT类型,2、 ANY 类型的参数指向数据区的起始位置,并指定其长度。 ANY 指针使用存储器中的 10 个字节。3、VARIANT 类型的参数是一个可以指向不同数据类型变量(而不是实例)的指针。 VARIANT 指针可以是一个元素数据类型的对象,例如 INT 或 REAL。 也可以是一个 STRING、DTL、STRUCT 数组、UDT 或 UDT 数组。 VARIANT 指针可以识别结构,并指向各个结构元素。 VARIANT 数据类型的操作数在背景 DB 或 L 堆栈中不占用任何空间。 但是,将占用 CPU 上的存储空间。VARIANT 类型的变量不是一个对象,而是对另一个对象的引用。 VARIANT 类型的各元素只能在函数的块接口中声明。 因此,不能在数据块或函数块的块接口静态部分中声明,例如,因为各元素的大小未知。 所引用对象的大小可以更改。

2,C语言中一个指针占用多少字节
一个指针变量在内存中占两个字节(small模式编译),一个指针变量在内存中占四个字节(32位机器上),一般都是32位机器的,所以四个字节咯。指针即为地址,指针几个字节跟语言无关,而是跟系统的寻址能力有关。指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。要搞清一个指针需要搞清指针的四方面的内容:指针的类型、指针所指向的类型、指针的值或者叫指针所指向的内存区、指针本身所占据的内存区。扩展资料1、指针的类型从语法的角度看,你只要把指针声明语句里的指针名字去掉,剩下的部分就是这个指针的类型。这是指针本身所具有的类型。让我们看看例一中各个指针的类型:(1)int*ptr;//指针的类型是int*(2)char*ptr;//指针的类型是char*(3)int**ptr;//指针的类型是int**(4)int(*ptr);//指针的类型是int(*)(5)int*(*ptr);//指针的类型是int*(*)2、指针所指向的类型当你通过指针来访问指针所指向的内存区时,指针所指向的类型决定了编译器将把那片内存区里的内容当做什么来看待。从语法上看,你只须把指针声明语句中的指针名字和名字左边的指针声明符*去掉,剩下的就是指针所指向的类型。例如:(1)int*ptr; //指针所指向的类型是int(2)char*ptr; //指针所指向的的类型是char(3)int**ptr; //指针所指向的的类型是int*(4)int(*ptr); //指针所指向的的类型是int()(5)int*(*ptr); //指针所指向的的类型是int*()参考资料来源:百度百科-指针

3,如何设置带有any或pointer数据类型的功能块
step7的帮助文件是这样说的: ANY:5字 ANY引用实例 P#M50.0 BYTE 10 区域 = M (存储区位) 起始位 = 50.0 数据类型 = BYTE 数据类型单元数 = 10 此实例将数据区域MB50定义为MB59。 注1:在使用ANY指针指向目标区域时,只允许BYTE或WORD型的目标区域 注2:某些型号PLC的一些指令只允许byte,比如s7-400中使用SFB12——“BSEND”,SD_I参数只能是byte类型,输入word类型在编程时不会报错误,程序执行时会出错。 以上说明ANY型数据是一种指针,它的信息很丰富,有区域、区域内地址、数据类型,还有POINTER类型所没有的长度。可以通过解析any型指针,即指针的指针来实现更加强大的功能。比如,编一个求和功能块。 pointer参考<详解西门子间接寻址>如下: P#中的P是Pointer,是个32位的直接指针。所谓的直接,是指P#中的#后面所跟的数值或者存储单元,是P直接给定的。这样P#XXX这种指针,就可以被用来在指令寻址中,作为一个“常数”来对待,这个“常数”可以包含或不包含存储区域。例如: ● L P#Q1.0 //把Q1.0这个指针存入ACC1,此时ACC1的内容=82000008(hex)=Q1.0 ★ L P#1.0 //把1.0这个指针存入ACC1,此时ACC1的内容=00000008(hex)=1.0 ● L P#MB100 //错误!必须按照byte.bit结构给定指针。 ● L P#M100.0 //把M100.0这个指针存入ACC1,此时ACC1的内容=83000320(hex)=M100.0 ● L P#DB100.DBX26.4 //错误!DBX已经提供了存储区域,不能重复指定。 ● L P#DBX26.4 //把DBX26.4这个指针存入ACC1,此时ACC1的内容=840000D4(hex)=DBX26.4 我们发现,当对P#只是指定数值时,累加器中的值和区域内寻址指针规定的格式相同(也和存储器间接寻址双字指针格式相同);而当对P#指定带有存储区域时,累加器中的内容和区域间寻址指针内容完全相同。事实上,把什么样的值传给AR,就决定了是以什么样的方式来进行寄存器间接寻址。在实际应用中,我们正是利用P#的这种特点,根据不同的需要,指定P#指针,然后,再传递给AR,以确定最终的寻址方式。 在寄存器寻址中,P#XXX作为寄存器AR指针的偏移量,用来和AR指针进行相加运算,运算的结果,才是指令真正要操作的确切地址数值单元! 无论是区域内还是区域间寻址,地址所在的存储区域都有了指定,因此,这里的P#XXX只能指定纯粹的数值,如上面例子中的★。

文章TAG:
any指针多少位指针 多少 请教
相关文章推荐
- BA6208是什么芯片,BA6247是什么芯片?
- 松下npm贴片机多少钱,买松下贴片机多少钱
- A9智能电视处理器能跑多少分,A9频率14怎么442系统和422系统安兔兔跑分一样
- 03db是多少,30wt等于多少
- 占空比多少有意义,占空比控制有什么优点
- 电路正负极颠倒危害,锂电池正负极接反
- 电路图中网孔,电路中网格的概念
- 电路板的硬件调试,简述硬件电路的设计流程
- 安桥818音箱设置多少,安桥818音频输入如何设置
- mos管电压等级,关于mos管的导通电压
- 正负极交换芯片,芯片的正负极
- 消除反电动势电压,反电动势消除电路
- 57AY161是什么芯片,A5657N是什么芯片?
- 安全芯片应用原理,什么是安全芯片?
- hx48电路图,xh-m401电路图