部分的一些源文件是 button_key.h, button_key.h, lcd.h, mani.c
等結構值未在主源文件來更新我的項目的
用於button_key.H一個和結構法聲明爲
struct menu {
uint8_t Hour;
uint8_t Minute;
uint8_t Second;
};
在main.c
源文件
#include "lcd.h"
#include "delay.h"
#include "button_key.h"
struct menu s1= {0};
struct menu *ptr;
int main(void)
{ int a;
ptr = &s1;
//some code//
menu_key_display (s1,menu_display);
LCD_DisplayNumber(10,(*ptr).Hour,2); // here not updating the structure value as per the code in button_key.c only show zero (0)
while(1);
// tried also LCD_DisplayNumber(10,s1.Hour,2); also seems same reult.
}
而被結構法在button_key.c
文件中使用的像(只有代碼的一部分)
void menu_key_display(struct menu s1,const char *menu_display[])
{ //some cdoe here
case 1: // set time
{
LCD_Clear();
LCD_GoToLine(0);
LCD_DisplayString(menu_display[5]);
LCD_GoToLine(1);
LCD_DisplayString(" HH:MM:SS:PM/AM");
UP_Down_Keyvalue(s1,2,4);
break;
// some code
}
上面的源代碼對菜單結構成員進行了更改,值作了更改。但是這種改變在main.c中並沒有體現出我的錯誤。
您需要將'ptr'傳遞給函數。 'c'中的參數是 – user3386109
的值。將'.Hour'傳遞給'LCD_DisplayNumber'時,會創建一個本地副本。函數返回時,對本地副本所做的任何更改都會丟失。如果你希望's1.Hour'在函數返回時保留它的值,你必須將它的指針傳給'LCD_DisplayNumber'並在函數中解引用它。 – yano
作爲__struct菜單* __傳遞,並使用s1->而不是s1。 – cup