我目前正在开发一个AUTOSAR项目,因此生成的代码基于该特定软件,可能看起来有些奇怪。但是文件First.c是完整的C.我的问题是关于访问存储在C中的指针变量中的值。
我有一个头文件'header.h',它反映了一个函数,看起来如下所示。这个头文件进一步从另一个文件访问一个单独的函数。
header.h
static inline Std_ReturnType First_Element(uint32 *data){
return First_Element_Read(data);
}
此函数在c文件'First.c'中调用如下。
int x;
int result;
void Func_call(void){
result = First_Element(x);
printf("The value in result is %d", &result);
return 0;
}
我只想从头文件中的变量'data'访问C文件中的x变量。当我这样做的时候,我会收到警告
从不兼容的指针类型传递'First_Element'的参数1。 并且不显示任何数据。有人可以在这里指出我的错误。
提前感谢!
答案 0 :(得分:3)
First_Element
采用uint32 *
类型的参数。
您使用int
类型的参数调用它。
这些不匹配,所以它不起作用。很难看到你期望在这里发生什么,所以我无法提出修复建议。
更新:更正后的代码应为:
uint32 x; /* <--- note type */
Std_ReturnType result; /* <--- note type */
void Func_call(void){
result = First_Element(&x); /* <--- added "&" */
printf("The value in result is %d", result);
return 0;
}
答案 1 :(得分:1)
你应该传递正确的,正确的类型值
result = First_Element((uint32 *) &x);
最好再考虑将x声明为signed int
int x;
可能您可能想要从
更改以下内容 printf("The value in result is %d", &result);
到
printf("The value in result is %d", result);