C缩写数组命名

时间:2014-09-18 00:29:51

标签: c arrays

我正在与PLC合作,作为练习,我在C中编写了一个小程序,以帮助我更好地理解C,PLC和梯形逻辑到C的转换。

我正在使用的PLC具有固定的存储空间,变量存储在" V存储器"位置。例如我将温度值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");

有什么方法可以缩写数组名称和地址吗?即使八进制部分太多而十进制值都可以工作,我也可以。我知道我可以#define

我正在使用Ubuntu 12.04和GCC 4.6.3进行开发。

1 个答案:

答案 0 :(得分:6)

没有比

更简单的方法
#define V3700 (Vmem[3700])

如果你有很多这种情况,你可以编写一个程序,生成一个包含所有define语句的标题,以节省你全部输入。