函数中的unsigned char值

时间:2017-04-02 10:43:40

标签: c

这取自:https://exploreembedded.com/wiki/AVR_C_Library DS1307_GetTime()方法,即时尝试了解此功能的工作原理。所以我在下面做了一个简化的例子。

你能解释GetTime()函数中发生了什么,以及我应该传递给它的有价值的孩子吗?

我的目标是在 int main()函数中获取b值。

到目前为止,我的理解是:

指针* a = I2C_Read(); 指向unsigned char,但指针不能指向某个值,为什么它不会出错?

who=(`who am i`)
user=${who[0]}

3 个答案:

答案 0 :(得分:1)

您正在将指针a设置为0 - 而不是有效值

您需要阅读指针 - 但同时将代码更改为

 unsigned char a = 0;   
 GetTime(&a);
 printf("Value of b is: %d\n" , a);

答案 1 :(得分:0)

将主要功能更改为:

int main()
{
   unsigned char a = 0; //   
   GetTime(&a);  // call by reference concept
   printf("Value of b is: %d\n" , a); 
}

这将导致b = 255,如果你想打印字符然后替换%d - > %C 。 也许它会帮助你。

答案 2 :(得分:0)

我现在明白了,谢谢你

1) GetTime(&a);                    // pass  in address of a.
2) GetTime(unsigned char *a)       // takes in contents of a, at the moment = 0
3) *a = read();                    // set contents of a to unsigned char 0b11111111 
4) printf("Value of b: %d\n" , a); // call this from main func results in returned value b = 255