Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 缩写数组命名_C_Arrays - Fatal编程技术网

C 缩写数组命名

C 缩写数组命名,c,arrays,C,Arrays,我正在使用PLC,作为练习,我正在用C编写一个小PLC程序,以帮助我更好地理解C、PLC以及梯形图逻辑到C的转换 我使用的PLC有固定的内存空间,变量存储在V内存位置。e、 我将温度值31存储在名为V3700的内存位置。所以任何时候我需要操纵温度,我都会在程序中使用V3700。为了模拟PLC内存空间,我只需使用一个名为Vmem[65536]的数组 PLC使用八进制寻址。在我上面的例子中,V3700是八进制的,所以它实际上是0x7C0或1984十进制 我想做的是简化Vmem[x]的编写,这样就不必

我正在使用PLC,作为练习,我正在用C编写一个小PLC程序,以帮助我更好地理解C、PLC以及梯形图逻辑到C的转换

我使用的PLC有固定的内存空间,变量存储在V内存位置。e、 我将温度值31存储在名为V3700的内存位置。所以任何时候我需要操纵温度,我都会在程序中使用V3700。为了模拟PLC内存空间,我只需使用一个名为Vmem[65536]的数组

PLC使用八进制寻址。在我上面的例子中,V3700是八进制的,所以它实际上是0x7C0或1984十进制

我想做的是简化Vmem[x]的编写,这样就不必使用括号。e、 g:

//current method to store 31 to V3700
Vmem[3700] = 31;

//How I want to address the array
V3700 = 31;

//Another example
if(V3700 > 5) printf("V3700 is greater than 5.\n");
有没有办法缩写数组名和地址?即使八进制部分太多,十进制值是所有的工作,我同意这一点。我知道我可以定义


我正在使用Ubuntu 12.04和GCC4.6.3进行开发。

没有比

#define V3700 (Vmem[3700])

如果您有很多这样的情况,您可以编写一个程序,生成一个包含所有define语句的标题,以避免您键入所有这些语句。

没有比

#define V3700 (Vmem[3700])

如果您有很多这样的情况,您可以编写一个程序,生成一个包含所有define语句的标题,以避免您键入所有这些语句。

确保这是值得的,并将这些宏限制在尽可能小的部分,以避免无意中重写其他代码。我希望有一个宏可以改变变量的命名。但似乎我必须为每个地址生成一个带有条目的标题。重复数据消除提出了一个很好的观点,我必须确保它不会破坏任何其他代码。确保它确实值得,并将这些宏限制在尽可能小的部分,以避免无意中重写其他代码。我希望有一个宏可以改变变量的命名。但似乎我必须为每个地址生成一个带有条目的标题。重复数据消除器提出了一个很好的观点,我必须确保它不会破坏任何其他代码。如果要为某个对象指定符号名,请不要将该名称作为内存位置。名称应该是内存位置上的内容的语义。定义温度Vmem[03700],或定义温度偏移量03700。。。Vmem[温度偏移]=31。如果你想阅读你的程序,而不需要每行交叉引用数据表,你就需要这样做。。。我的意思是,你不会定义一个1,是吗?我意识到根据变量的函数命名变量更现实,但我坚持PLC使用的命名约定。不过,为了公平起见,PLC代码编辑器支持使用用户定义的名称标记内存和其他变量,以保持正常。如果要为某个对象指定符号名称,请不要将该名称作为内存位置。名称应该是内存位置上的内容的语义。定义温度Vmem[03700],或定义温度偏移量03700。。。Vmem[温度偏移]=31。如果你想阅读你的程序,而不需要每行交叉引用数据表,你就需要这样做。。。我的意思是,你不会定义一个1,是吗?我意识到根据变量的函数命名变量更现实,但我坚持PLC使用的命名约定。不过,公平地说,PLC代码编辑器支持使用用户定义的名称标记内存和其他变量,以保持状态正常。