这取自:https://exploreembedded.com/wiki/AVR_C_Library DS1307_GetTime()方法,即时尝试了解此函数如何工作。所以我在下面做了一个简单的例子。函数中的无符号字符值
你能解释一下GetTime()函数中发生了什么,我应该传入什么值的孩子?
我的目标是获得int main()函数中的b值。
我的理解到目前为止是:
指针*一个= I2C_Read();指向无符号字符,但指针不能指向一个值,为什么不是错误?
#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); // ?
}
代码deferences一个空指针。最好使用无符号字符变量的地址来调用GetTime,而不要使用空指针。 –
“_...但一个指针不能指向一个值_”呃???但是,这恰恰是一个指针:指向一个值,可以是一个数组元素,一个结构或者像这里一样是一个无符号字符。 –