久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2456|回復(fù): 14
打印 上一主題 下一主題
收起左側(cè)

C語言代碼中,能否有兩個(gè)返回值?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:624769 發(fā)表于 2021-11-17 16:24 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  比如一個(gè)子函數(shù)
char  TEST();
{
      char  a;
      a++;
      return a;
}

主程序中,  temp = Test();      就能取到 0x01

又比如:
bit  TEST2();
{
      bit  Flag;
      Flag = !Flag;
      return Flag;
}

主程序中,  temp_Flag = Test2();      就能取到 1

那么,能不能做一個(gè)子函數(shù),同時(shí)返回一個(gè) char 和 一個(gè) bit  如果能的話,函數(shù)應(yīng)該如何聲明,主程序又該如何調(diào)用?

望知道的兄弟不吝賜教。
如果,明確確定不能實(shí)現(xiàn),也望告知一下,我也就不浪費(fèi)時(shí)間捉摸了。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:824490 發(fā)表于 2021-11-17 17:20 | 只看該作者
返回用結(jié)構(gòu)體,多少個(gè)都行。
回復(fù)

使用道具 舉報(bào)

板凳
ID:155507 發(fā)表于 2021-11-17 20:18 | 只看該作者
return 語句可以有多個(gè),可以出現(xiàn)在函數(shù)體的任意位置,但是每次調(diào)用函數(shù)只能有一個(gè) return 語句被執(zhí)行,所以只有一個(gè)返回值


函數(shù)多個(gè)參數(shù)傳遞方式:地址傳遞

void Exchg2(int *px, int *py)
{
   int tmp = *px;
   *px = *py;
   *py = tmp;
   printf("*px = %d, *py = %d.\n", *px, *py);
}
main()
{
   int a = 4;
   int b = 6;
   Exchg2(&a, &b);
   printf("a = %d, b = %d.\n”, a, b);
   return(0);
}
它的輸出結(jié)果是:
*px = 6, *py = 4.
a = 6, b = 4.
看函數(shù)的接口部分:Exchg2(int *px, int *py),請(qǐng)注意:參數(shù)px、py都是指針。再看調(diào)用處:Exchg2(&a, &b);
它將a的地址(&a)代入到px,b的地址(&b)代入到py。同上面的值傳遞一樣,函數(shù)調(diào)用時(shí)作了兩個(gè)隱含的操作:將&a,&b的值賦值給了px、py。
   px = &a;
   py = &b;
呵呵!我們發(fā)現(xiàn),其實(shí)它與值傳遞并沒有什么不同,只不過這里是將a、b的地址值傳遞給了px、py,而不是傳遞的a、b的內(nèi)容,而(請(qǐng)好好地在比較比較啦)整個(gè)Exchg2函數(shù)調(diào)用是如下執(zhí)行的:
   px = &a; /* ← */
   py = &b; /* ← 請(qǐng)注意這兩行,它是調(diào)用Exchg2的隱含動(dòng)作。*/
   int tmp = *px;
   *px = *py;
   *py = tmp;
   printf("*px =%d, *py = %d.\n", *px, *py);
這樣,有了頭兩行的隱含賦值操作。我們現(xiàn)在已經(jīng)可以看出,指針px、py的值已經(jīng)分別是a、b變量的地址值了。接下來,對(duì)*px、*py的操作當(dāng)然也就是對(duì)a、b變量本身的操作了。所以函數(shù)里頭的交換就是對(duì)a、b值的交換了,這就是所謂的地址傳遞(傳遞a、b的地址給了px、py),你現(xiàn)在明白了嗎?

回復(fù)

使用道具 舉報(bào)

地板
ID:57657 發(fā)表于 2021-11-17 20:22 | 只看該作者
函數(shù)可以修改參數(shù)變量(數(shù)組)的值,需熟練指針操作。
回復(fù)

使用道具 舉報(bào)

5#
ID:213173 發(fā)表于 2021-11-17 21:24 | 只看該作者
可以有多個(gè),但只能返回其中一個(gè)。
回復(fù)

使用道具 舉報(bào)

6#
ID:624769 發(fā)表于 2021-11-17 22:33 | 只看該作者
angmall 發(fā)表于 2021-11-17 20:18
return 語句可以有多個(gè),可以出現(xiàn)在函數(shù)體的任意位置,但是每次調(diào)用函數(shù)只能有一個(gè) return 語句被執(zhí)行,所 ...

謝謝你的回答, 最近為了提高自己對(duì)C的理解,在重溫以及改寫以前的代碼,由于這個(gè)傳參問題當(dāng)初也不知道黑51論壇,當(dāng)初就是用的傳指針方法。
但是傳指針牽涉到指針類型什么的,所以當(dāng)時(shí)為了考慮通用問題,都是用的通用指針 void *p, 所以給編譯后的程序體積帶來很大的負(fù)擔(dān)。所以才想通過寄存器傳參的方法,由于實(shí)際上子函數(shù)多是用匯編寫的,所以其實(shí)無論是BYTE, 還是 BIT 其實(shí)都已經(jīng)傳到寄存器了,問題就是用在C語言中如何接收傳出來的參。之前用比較變通的方法,先用一個(gè)  char Text(); 來接收存在R7的參, 再跟一個(gè) Flag = CY; 把存在C的BIT參也讀出來,感覺總不是很好,所以捉摸是不是可以有更好的辦法。

看你指針說了那么多,想來應(yīng)該指針這塊比較了解,我也正好有指針問題相當(dāng)疑惑,這里想請(qǐng)教一下,希望不吝賜教。
1) 當(dāng)我聲明一個(gè)   數(shù)組:  char data test_A[8]; 的時(shí)候,
函數(shù), void test1(char *p)    應(yīng)該是可以傳  &test_A 的。
但是, 當(dāng)我聲明, 數(shù)組  char xdata test_B[8];  的時(shí)候,
函數(shù), void  test2(這里怎么寫?)   才能傳 &test_B  ?
然后, 當(dāng)我聲明, 數(shù)組  char pdata test_C[8];  的時(shí)候,
函數(shù), void  test3(這里怎么寫?)   才能傳 &test_C  ?

而,如果要強(qiáng)制用 上面 test2 函數(shù) 傳 &test_C  又該在調(diào)用的時(shí)候怎么寫?

2)我要聲明一個(gè)指針  *p  指向 xdata 的話。
那么, char xdata *p 應(yīng)該對(duì)的吧? 這種情況下 p 應(yīng)該是雙字節(jié)吧?畢竟xdata 地址是雙字節(jié)吧? 而*p 應(yīng)該是單字節(jié)的吧? 那么我在使用過程中,如果要讓 *p 變成雙字節(jié), 這個(gè)強(qiáng)制轉(zhuǎn)換應(yīng)該怎么寫?

暫時(shí),想請(qǐng)教這兩個(gè)問題,把指針稍微屢出一點(diǎn)頭緒,后續(xù)可能還會(huì)追問,希望不要嫌棄。
對(duì)指針實(shí)在是很多不理解,所以很多時(shí)候都寧可不用指針,而用數(shù)組。
回復(fù)

使用道具 舉報(bào)

7#
ID:401564 發(fā)表于 2021-11-17 23:49 | 只看該作者
沙發(fā)已經(jīng)告訴你了,用結(jié)構(gòu)體可以返回多個(gè)數(shù)據(jù)類型,N個(gè)!結(jié)構(gòu)體還有一個(gè)好處,就是復(fù)制,數(shù)據(jù)A的數(shù)據(jù)如果要復(fù)制到數(shù)組B的話,是不能B=A的,是有點(diǎn)麻煩的
但結(jié)構(gòu)體可以直接用  B=A;
bit是,位不能作為結(jié)構(gòu)體成員,別的單片機(jī)不知道,至少8051是不行的,但可以用一個(gè)char 來代替的,速度和代碼空間變化不大
不要管xdata,不要管R7,這是C語言,不是匯編,都這樣想,不會(huì)匯編的人都寫不出C程序來了,至于8051的16位指針,在C中用到的人少到幾乎沒有.
你在數(shù)據(jù)前面加了xdata,編譯器自然會(huì)按照xdata來尋址,
那128個(gè)字節(jié)做不也什么事的,很多時(shí)候是不夠用的,但編譯器會(huì)自動(dòng)處理的typedef struct
{
        unsigned char a;
        char k;
} stru;          
stru disp(unsigned char m)
{
stru p;
p.a=m+1;
p.k=m+10;
return p;
}
void main()
{
    unsigned char a,b;
        stru m;
        m=disp(5);
        a=m.a;
        b=m.k;
    while(1);
}


回復(fù)

使用道具 舉報(bào)

8#
ID:624769 發(fā)表于 2021-11-18 00:19 | 只看該作者
Y_G_G 發(fā)表于 2021-11-17 23:49
沙發(fā)已經(jīng)告訴你了,用結(jié)構(gòu)體可以返回多個(gè)數(shù)據(jù)類型,N個(gè)!結(jié)構(gòu)體還有一個(gè)好處,就是復(fù)制,數(shù)據(jù)A的數(shù)據(jù)如果要復(fù)制 ...

謝謝 答復(fù), 經(jīng)你上次一說,我打算惡補(bǔ)一下C語言,
這里,我想請(qǐng)教一下:

        m=disp(5);            是不是執(zhí)行這句的時(shí)候, 把p.a  p.k 算出來,然后存在一個(gè)地方
        a=m.a;                  這里兩句,就把,上面算出來值,賦給a,b
        b=m.k;

如果,我這里再運(yùn)行一個(gè)
       x=disp(8);
      上面, m.a, m.k 不會(huì)受影響。 新的結(jié)果在 x.a, x.k?

判答。
回復(fù)

使用道具 舉報(bào)

9#
ID:401564 發(fā)表于 2021-11-18 00:37 | 只看該作者
unsigned char a,b;  
        stru m;//聲明結(jié)結(jié)構(gòu)體m,m有兩個(gè)成員,就是前面已經(jīng)標(biāo)記過的unsigned char a;        char k;        m=disp(5);//參考函數(shù)聲明中的執(zhí)行
        a=m.a;//結(jié)構(gòu)體成員a的值賦值到變量a,兩個(gè)a是不一樣的,結(jié)構(gòu)體a跟下面的k同理
        b=m.k;


如果前面有這樣的聲明stru m,x;
那么,這就是有兩個(gè)結(jié)構(gòu)體了:m和x,
x=disp(8);//這個(gè)只會(huì)改變x.a, x.k,m不變
m=disp(1);//這個(gè)只會(huì)改變m.a, m.k,x不變
x=m;//結(jié)構(gòu)體m賦值到x
等同于:
x.a=m.a;
x.k=m.k;
如果成員很多,或者是在結(jié)構(gòu)體中有數(shù)組,x=m;這種操作就相當(dāng)方便
驗(yàn)證的最好辦法是仿真或者通過串口在電腦顯示
回復(fù)

使用道具 舉報(bào)

10#
ID:584195 發(fā)表于 2021-11-18 06:53 | 只看該作者
看著有點(diǎn)蒙。
回復(fù)

使用道具 舉報(bào)

11#
ID:155507 發(fā)表于 2021-11-18 08:07 | 只看該作者
188610329 發(fā)表于 2021-11-17 22:33
謝謝你的回答, 最近為了提高自己對(duì)C的理解,在重溫以及改寫以前的代碼,由于這個(gè)傳參問題當(dāng)初也不知道黑 ...

  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. char data test_A[8];
  5. char xdata test_B[8];
  6. char pdata test_C[8];

  7. void test1(char *p);
  8. void test2(char xdata *p1);
  9. void test3(char pdata *p2);

  10. void test1(char *p)
  11. {
  12.         *p =0x01;
  13. }

  14. void test2(char xdata *p1)
  15. {
  16.                 *p1 =0x02;
  17. }
  18. void test3(char pdata *p2)
  19. {
  20.                 *p2 =0x03;
  21. }

  22. void main()
  23. {
  24.         test1(test_A);
  25.         test2(test_B);
  26.         test3(test_C);
  27.         test2(test_B);
  28.         test2((char xdata *)test_C);
  29.         test2((char xdata *)test_A);
  30. }
復(fù)制代碼

  1. C51 COMPILER V9.60.0.0   TEST12                                                            11/18/2021 07:57:43 PAGE 1   


  2. C51 COMPILER V9.60.0.0, COMPILATION OF MODULE TEST12
  3. OBJECT MODULE PLACED IN .\Objects\test12.obj
  4. COMPILER INVOKED BY: C:\Keil_v5\C51\BIN\C51.EXE test12.c OPTIMIZE(8,SPEED) BROWSE DEBUG OBJECTEXTEND CODE SYMBOLS PRINT(
  5.                     -.\Listings\test12.lst) TABS(2) OBJECT(.\Objects\test12.obj)

  6. line level    source

  7.    1          /*
  8.    2          看你指針說了那么多,想來應(yīng)該指針這塊比較了解,我也正好有指針問題相當(dāng)疑捊             -ƒ‘,這里想請(qǐng)教一下,希望不吝賜教。
  9.    3          1) 當(dāng)我聲明一個(gè)   數(shù)組:  char data test_A[8]; 的時(shí)候,
  10.    4          函數(shù), void test1(char *p)    應(yīng)該是可以傳  &test_A 的。
  11.    5          但是, 當(dāng)我聲明, 數(shù)組  char xdata test_B[8];  的時(shí)候,
  12.    6          函數(shù), void  test2(這里怎么寫?)   才能傳 &test_B  ?
  13.    7          然后, 當(dāng)我聲明, 數(shù)組  char pdata test_C[8];  的時(shí)候,
  14.    8          函數(shù), void  test3(這里怎么寫?)   才能傳 &test_C  ?
  15.    9         
  16.   10          而,如果要強(qiáng)制用 上面 test2 函數(shù) 傳 &test_C  又該在調(diào)用的時(shí)候怎么寫?
  17.   11         
  18.   12          2)我要聲明一個(gè)指針  *p  指向 xdata 的話。
  19.   13          那么, char xdata *p 應(yīng)該對(duì)的吧? 這種情況下 p 應(yīng)該是雙字節(jié)吧?畢竟xdata 地址是
  20.              -雙字節(jié)吧? 而*p 應(yīng)該是單字節(jié)的吧? 那么我在使用過程中,如果要讓 *p 變成雙字節(jié), 這不
  21.              -a強(qiáng)制轉(zhuǎn)換應(yīng)該怎么寫?
  22.   14         
  23.   15          暫時(shí),想請(qǐng)教這兩個(gè)問題,把指針稍微屢出一點(diǎn)頭緒,后續(xù)可能還會(huì)追問,希望䍊             -¸要嫌棄。
  24.   16          對(duì)指針實(shí)在是很多不理解,所以很多時(shí)候都寧可不用指針,而用數(shù)組。
  25.   17         
  26.   18          */
  27.   19          #include <reg52.h>
  28.   20          #define uint unsigned int
  29.   21          #define uchar unsigned char
  30.   22         
  31.   23          char data test_A[8];
  32.   24          char xdata test_B[8];
  33.   25          char pdata test_C[8];
  34.   26         
  35.   27          void test1(char *p);
  36.   28          void test2(char xdata *p1);
  37.   29          void test3(char pdata *p2);
  38.   30         
  39.   31          void test1(char *p)
  40.   32          {
  41.   33   1        *p =0x01;
  42.   34   1      }
  43.   35         
  44.   36          void test2(char xdata *p1)
  45.   37          {
  46.   38   1          *p1 =0x02;
  47.   39   1      }
  48.   40          void test3(char pdata *p2)
  49.   41          {
  50.   42   1          *p2 =0x03;
  51.   43   1      }
  52.   44         
  53.   45          void main()
  54.   46          {
  55.   47   1        test1(test_A);
  56.   48   1        test2(test_B);
  57.   49   1        test3(test_C);
  58.   50   1        test2(test_B);
  59. C51 COMPILER V9.60.0.0   TEST12                                                            11/18/2021 07:57:43 PAGE 2   

  60.   51   1        test2((char xdata *)test_C);
  61.   52   1        test2((char xdata *)test_A);
  62.   53   1      }
  63.   54         
  64.   55         
  65.   56         
  66.   57         
  67.   58         
  68. C51 COMPILER V9.60.0.0   TEST12                                                            11/18/2021 07:57:43 PAGE 3   

  69. ASSEMBLY LISTING OF GENERATED OBJECT CODE


  70.              ; FUNCTION _test1 (BEGIN)
  71.                                            ; SOURCE LINE # 31
  72. ;---- Variable 'p' assigned to Register 'R1/R2/R3' ----
  73.                                            ; SOURCE LINE # 32
  74.                                            ; SOURCE LINE # 33
  75. 0000 7401              MOV     A,#01H
  76. 0002 020000      E     LJMP    ?C?CSTPTR
  77.              ; FUNCTION _test1 (END)

  78.              ; FUNCTION _test2 (BEGIN)
  79.                                            ; SOURCE LINE # 36
  80. ;---- Variable 'p1' assigned to Register 'DPTR' ----
  81. 0000 8F82              MOV     DPL,R7
  82. 0002 8E83              MOV     DPH,R6
  83.                                            ; SOURCE LINE # 37
  84.                                            ; SOURCE LINE # 38
  85. 0004 7402              MOV     A,#02H
  86. 0006 F0                MOVX    @DPTR,A
  87.                                            ; SOURCE LINE # 39
  88. 0007 22                RET     
  89.              ; FUNCTION _test2 (END)

  90.              ; FUNCTION _test3 (BEGIN)
  91.                                            ; SOURCE LINE # 40
  92. ;---- Variable 'p2' assigned to Register 'R0' ----
  93. 0000 A807              MOV     R0,AR7
  94.                                            ; SOURCE LINE # 41
  95.                                            ; SOURCE LINE # 42
  96. 0002 7403              MOV     A,#03H
  97. 0004 F2                MOVX    @R0,A
  98.                                            ; SOURCE LINE # 43
  99. 0005 22                RET     
  100.              ; FUNCTION _test3 (END)

  101.              ; FUNCTION main (BEGIN)
  102.                                            ; SOURCE LINE # 45
  103.                                            ; SOURCE LINE # 46
  104.                                            ; SOURCE LINE # 47
  105. 0000 7B00              MOV     R3,#00H
  106. 0002 7A00        R     MOV     R2,#HIGH test_A
  107. 0004 7900        R     MOV     R1,#LOW test_A
  108. 0006 120000      R     LCALL   _test1
  109.                                            ; SOURCE LINE # 48
  110. 0009 7E00        R     MOV     R6,#HIGH test_B
  111. 000B 7F00        R     MOV     R7,#LOW test_B
  112. 000D 120000      R     LCALL   _test2
  113.                                            ; SOURCE LINE # 49
  114. 0010 7F00        R     MOV     R7,#LOW test_C
  115. 0012 120000      R     LCALL   _test3
  116.                                            ; SOURCE LINE # 50
  117. 0015 7F00        R     MOV     R7,#LOW test_B
  118. 0017 120000      R     LCALL   _test2
  119.                                            ; SOURCE LINE # 51
  120. 001A 7E00        R     MOV     R6,#HIGH test_C  <---應(yīng)該是雙字節(jié)
  121. 001C 7F00        R     MOV     R7,#LOW test_C
  122. 001E 120000      R     LCALL   _test2
  123.                                            ; SOURCE LINE # 52
  124. 0021 7E00        R     MOV     R6,#HIGH test_A  <---應(yīng)該是雙字節(jié)
  125. 0023 7F00        R     MOV     R7,#LOW test_A
  126. C51 COMPILER V9.60.0.0   TEST12                                                            11/18/2021 07:57:43 PAGE 4   

  127. 0025 020000      R     LJMP    _test2
  128.              ; FUNCTION main (END)

  129. C51 COMPILER V9.60.0.0   TEST12                                                            11/18/2021 07:57:43 PAGE 5   

  130. NAME                                    CLASS   MSPACE  TYPE    OFFSET  SIZE
  131. ====                                    =====   ======  ====    ======  ====


  132. P1 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0090H  1
  133. P3 . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B0H  1
  134. IE . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00A8H  1
  135. IP . . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00B8H  1
  136. main . . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  137. SCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0098H  1
  138. TCON . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   0088H  1
  139. test_A . . . . . . . . . . . . . . . .  PUBLIC   DATA   ARRAY    0000H  8
  140. test_B . . . . . . . . . . . . . . . .  PUBLIC   XDATA  ARRAY    0000H  8
  141. test_C . . . . . . . . . . . . . . . .  PUBLIC   PDATA  ARRAY    0000H  8
  142. T2CON. . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00C8H  1
  143. _test1 . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  144.   p. . . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0001H  3
  145. _test2 . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  146.   p1 . . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0082H  2
  147. _test3 . . . . . . . . . . . . . . . .  PUBLIC   CODE   PROC     0000H  -----
  148.   p2 . . . . . . . . . . . . . . . . .  * REG *  DATA   PTR      0000H  1
  149. PSW. . . . . . . . . . . . . . . . . .  SFR      DATA   U_CHAR   00D0H  1


  150. MODULE INFORMATION:   STATIC OVERLAYABLE
  151.    CODE SIZE        =     59    ----
  152.    CONSTANT SIZE    =   ----    ----
  153.    XDATA SIZE       =      8    ----
  154.    PDATA SIZE       =      8    ----
  155.    DATA SIZE        =      8    ----
  156.    IDATA SIZE       =   ----    ----
  157.    BIT SIZE         =   ----    ----
  158. END OF MODULE INFORMATION.


  159. C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

12#
ID:824490 發(fā)表于 2021-11-18 10:59 | 只看該作者
//給你一個(gè)簡易代碼:
#include "Reg51.H"

typedef struct {
  unsigned char G;
  unsigned char R;
  unsigned char B;
}ColorVal ;   //聲明一個(gè)結(jié)構(gòu)體,包含3個(gè)成員;
  

ColorVal changeVal (ColorVal mydata); //結(jié)構(gòu)體成員互換
  
void main()
{

ColorVal temp1;//定義一個(gè)結(jié)構(gòu)體

temp1.G=10;temp1.R=20;temp1.B=30; //初始賦值

while(1)

{

   temp1= changeVal(temp1); //互換
         
   P1=temp1.R;  //觀察結(jié)果
         P2=temp1.G;
         P3=temp1.B;
         
  }

}


  ColorVal changeVal (ColorVal mydata)
  {
   unsigned char tt;
    tt= mydata.R;
    mydata.R=mydata.B;
    mydata.B=mydata.G;
    mydata.G=tt;
         return mydata; //返回值為結(jié)構(gòu)體:帶3個(gè)參數(shù)
               
   }
  
  
回復(fù)

使用道具 舉報(bào)

13#
ID:624769 發(fā)表于 2021-11-18 11:29 | 只看該作者

謝謝, 感覺有一些啟發(fā), 但是又抓不住, 我先消化一下, 可能消化完了, 還要再請(qǐng)教一下,  另外, 兩個(gè)題外問題。
1)
void main()
{
        test1(test_A);   
        test2(test_B);
        test3(test_C);    < = 這幾個(gè)地方,應(yīng)該是要傳地址,從你翻出來的匯編代碼看,也確實(shí)是傳得地址,但是,為什么不需要用 &test_A 是因?yàn)閿?shù)組的關(guān)系么?有什么特別的規(guī)定么?

2) 你這個(gè)翻譯匯編,好像是工具生成的,用什么工具的?

回復(fù)

使用道具 舉報(bào)

14#
ID:624769 發(fā)表于 2021-11-18 11:31 | 只看該作者
Y_G_G 發(fā)表于 2021-11-18 00:37
unsigned char a,b;  
        stru m;//聲明結(jié)結(jié)構(gòu)體m,m有兩個(gè)成員,就是前面已經(jīng)標(biāo)記過的unsigned char a ...

謝謝, 科普了一些結(jié)構(gòu)體的知識(shí), 我消化消化,估計(jì),稍后還要麻煩你。
回復(fù)

使用道具 舉報(bào)

15#
ID:155507 發(fā)表于 2021-11-18 16:14 | 只看該作者
188610329 發(fā)表于 2021-11-18 11:29
謝謝, 感覺有一些啟發(fā), 但是又抓不住, 我先消化一下, 可能消化完了, 還要再請(qǐng)教一下,  另外, 兩個(gè)題外問 ...

1)不需要用 &test_A 是因?yàn)閿?shù)組的關(guān)系
http://c.biancheng.net/cpp/html/61.html

2) 就是 Keil
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产资源视频 | 亚洲国产成人精品女人久久久 | 国产精品一区二区不卡 | 无码日韩精品一区二区免费 | 在线免费观看成人 | 国产91久久久久蜜臀青青天草二 | 91福利网 | 日韩在线精品视频 | 久久九九99 | 欧美一区二区三区 | 可以在线看的黄色网址 | 日韩精品二区 | 欧洲视频一区二区 | 国产精品一区二区视频 | 亚洲精品视频一区 | 精品91久久 | 日韩视频精品在线 | 欧美综合久久久 | 久久精品一二三影院 | 五月天婷婷久久 | 久久久www成人免费无遮挡大片 | 一区二区三区回区在观看免费视频 | 亚洲社区在线 | 国色天香综合网 | 国产999精品久久久久久绿帽 | 99精品久久99久久久久 | 国产成人久久精品 | 9色网站| 国产 欧美 日韩 一区 | 欧洲免费毛片 | 精品久久久久久久久久 | 日韩精品无码一区二区三区 | 亚洲视频在线观看免费 | 美女黄网站 | 欧美黑人体内she精在线观看 | 国产福利在线 | 毛片久久久 | 99久久99 | 超碰成人免费 | 欧美 日本 国产 | 天堂色 |