【发布时间】:2017-04-02 19:25:18
【问题描述】:
这取自:https://exploreembedded.com/wiki/AVR_C_Library DS1307_GetTime() 方法,我试图了解这个函数是如何工作的。所以我在下面做了一个简化的例子。
您能解释一下 GetTime() 函数中发生了什么以及我应该将什么有价值的孩子传递给它吗?
我的目标是在 int main() 函数中获取 b 值。
到目前为止我的理解是:
pointer * a = I2C_Read(); 指向unsigned char,但是指针不能指向值,为什么不报错?
#include <stdio.h>
#include <stdlib.h>
unsigned char I2C_Read()
{
unsigned char b = 0b11111111;
return b;
}
void GetTime(unsigned char *a)
{
*a = I2C_Read();
}
int main()
{
unsigned char *a = 0;
GetTime(a); // ?
printf("Value of b is: %d\n" , b); // ?
}
【问题讨论】:
-
您的代码引用了一个空指针。最好使用 unsigned char 变量的地址调用
GetTime,而不是使用空指针。 -
"...但是指针不能指向值" 咦???但这正是指针的用途:point 指向一个值,可以是数组元素、结构,或者像这里的 unsigned char。
标签: c