欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: C語言如何把函數(shù)指針參數(shù)傳到宏定義開辟的空間呢? [打印本頁]

作者: hei51com    時間: 2020-11-6 10:46
標(biāo)題: C語言如何把函數(shù)指針參數(shù)傳到宏定義開辟的空間呢?
如下,想用#else 替換,但這樣編譯不通過,請教怎么修改才能編譯通過。
  1. typedef struct{
  2. uint8 Address;
  3. uint8 Top_data;
  4. uint8 Middle_data;
  5. uint8 Botton_data;
  6. }RAM_TAB;

  7. RAM_TAB *ram_ptr;

  8. #define RESEVE_ADDR (0x8fb2600)//使用RESEVE保留的內(nèi)存

  9. typedef struct{
  10. uint8 Address;
  11. uint8 Top_data;
  12. uint8 Middle_data;
  13. uint8 Botton_data;
  14. }ram_tab_t;

  15. #define g_ram_tab_info ((ram_tab_t *)(RESEVE_ADDR))

  16. int WriteRam(uint8 data_length, RAM_TAB *ram_address)
  17. {
  18. uint8 i,

  19. #if 0
  20. ram_ptr = ram_address;
  21. #else
  22. g_ram_tab_info = ram_address;
  23. #endif

  24. for(i = 0; i < data_length; i++)
  25. {
  26. #if 0
  27. if(WriteReg(0x1d,&ram_ptr->Address,ADDR,2) != FALSE)
  28. return -1;
  29. if(WriteReg(0x10,&ram_ptr->Top_data,ADDR,2) != FALSE)
  30. return -1;
  31. if(WriteReg(0x11,&ram_ptr->Middle_data,ADDR,2) != FALSE)
  32. return -1;
  33. if(WriteReg(0x22,&ram_ptr->Botton_data,ADDR,2) != FALSE)
  34. return -1;
  35. ram_ptr++;
  36. #else
  37. if(WriteReg(0x1d,&g_ram_tab_info->Address,ADDR,2) != FALSE)
  38. return -1;
  39. if(WriteReg(0x10,&g_ram_tab_info->Top_data,ADDR,2) != FALSE)
  40. return -1;
  41. if(WriteReg(0x11,&g_ram_tab_info->Middle_data,ADDR,2) != FALSE)
  42. return -1;
  43. if(WriteReg(0x22,&g_ram_tab_info->Botton_data,ADDR,2) != FALSE)
  44. return -1;
  45. g_ram_tab_info++;
  46. #endif
  47. }

  48. return 0;
  49. }
復(fù)制代碼




作者: B001    時間: 2020-11-6 15:41
對于像STM32這種程序,你所定義的RESERVE_ADDR屬于FLASH的地址范圍,g_ram_tab_info代表的是一個FLASH地址,第28行g(shù)_ram_tab_info=ram_address是試圖將FLASH的指改變,這是不允許的。







歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1