指向涉及多个c源文件的结构的指针

时间:2015-04-02 16:46:25

标签: c pointers structure typedef

我是c编程的初学者,请原谅我可能犯的任何明显错误。 我的问题 - 我已经给了我一个标题和源文件(如下所示) -

那么header1.h

#ifndef .....
#define .....

typedef struct
{
    int a1,b1; //a's=input and b's=ouput
    int a2,b2;
    int a3,b3;
    int a4,b4;
}xx_xx;
int xxcalc(xx_xx *y);
endif;

由source.c

#define "header1.h"
#define <stdio.h>
int xxcalc(xx_xx *y)
{
    y->b1 = 2 * a1;
    y->b2 = 3 * a2 + a1;
    y->b3 = a3 + 7;
    y->b4 = a4 / 3;
    return 1;
}

现在我需要编写一个主源文件,然后通过使用msp430微控制器计算表达式来查找结果。我正在使用code composer studio来做这件事。

的main.c

#define "header1.h"
#define <stdio.h>
// few lines of code to disable watchdog timer
void main()
{
    int data1[10],r;
    y = &data1;
    y->a1 = 2;
    y->a2 = 3;
    y->a3 = 4;
    y->a4 = 5;
    r = b1 * b2 + b3 + b4;
}

现在当我编译它并检查寄存器时,我的输入都没有被考虑,并且它的位置有垃圾值。 我究竟做错了什么? 我输入输入和访问结构中声明的输出变量值的方法是否正确?

1 个答案:

答案 0 :(得分:0)

首先你需要声明struct的变量才能访问它的成员。像这样:

xx_xx y; 

其次,您尝试分配y = &data1,其中data1考虑您的代码是10个整数的数组,y是xx_xx类型。我能想到的任何方式都是错的。

请发布更多信息,以便我可以帮助您。 谢谢 。