找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

請教C語言return用法

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:734017 發(fā)表于 2021-11-18 00:37 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
void main()
{
while(1)
        {
if(clok_HOT)
                {               
                        if(clok_HOT_tmie)
                                {
                                        clok_HOT_tmie=~clok_HOT_tmie;
                                        clok_HOT_tmie_Counter++;
                                
                                if(clok_HOT_tmie_Counter>=10000)
                                        {
                                                clok_HOT_tmie_Counter=0;
                                                cold_HOT_DADT11=CMPCR1^0x01;
                                                cold_HOT_DADT11 &= 0x01;                                //ζè±è½Ï£¬′yDT¸Ä
                                                if(cold_HOT_DADT11&&clok_HOT_ion&&!clok_mode)   //à䱨¾ˉ
                                                {        
                                                                clok_lock=0;
                                                                clok_OUT=0;
                                                                clok_HOT_ion=~clok_HOT_ion;
                                                                send_string(cold_HOT,12);
                                                                send_string(Buzzert2,7);
                                                                return;
                                                }
                                                else if(!clok_HOT_ion&&!clok_mode)
                                                {
                                                        clok_lock=1;
                                                        clok_OUT=1;
                                                        clok_HOT_ion=~clok_HOT_ion;
                                                        send_string(cold_cold,12);        
                                                        return;                                                        
                                                }
                                                if(cold_HOT_DADT11&&clok_HOT_ion&&clok_mode)        //èèí£Ö1
                                                {        
                                                                clok_lock=0;
                                                                clok_OUT=0;
                                                                clok_HOT_ion=~clok_HOT_ion;
                                                                return;
                                                }
                                                else if(!clok_HOT_ion&&clok_mode)
                                                {
                                                        clok_lock=1;
                                                        clok_OUT=1;
                                                        clok_HOT_ion=~clok_HOT_ion;
                                                        return;                                                
                                                }
                                        }
                                }
                        }

        
}
}

我這部分代碼沒有建函數(shù),return;返回到while(1)?
下面這個(gè)能直接退出中斷?
void TM0_Isr() interrupt 1                                        //¶¨ê±Æ÷0ÖD¶Ï
{
               
                if(SK_lock)                                                                                // 2ùμ¶ÆμÂê
                {
                        P0^=0x03;
                        return;
                }
                        if (clok_lock)                                                                //àä
                        {
                                clok_satar=~clok_satar;
                        }
                        if(clok_HOT)
                        {        
                                clok_HOT_tmie=~clok_HOT_tmie;
                        }        
                                                if(ul_1_lock|ul_2_lock)                                                //3¬éù
                                                {
                                                        ul_satar=~ul_satar;
                                                        return;
                                                }
                                                        if(ion_1_lock)                                                                //΢μç1
                                                        {
                                                                ion1_satar=~ion1_satar;
                                                                return;
                                                        }
                                                                if(ion_2_lock)                                                        //΢μç2
                                                                {        
                                                                        ion2_satar=~ion2_satar;
                                                                        return;
                                                                }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:480510 發(fā)表于 2021-11-18 07:13 | 只看該作者
return 是返回一個(gè)值的意思。你這樣能編譯成功?
回復(fù)

使用道具 舉報(bào)

板凳
ID:460753 發(fā)表于 2021-11-18 07:46 | 只看該作者
return;返回到while(1)?
return 是退出整個(gè)函數(shù)。break 是退出循環(huán)。
回復(fù)

使用道具 舉報(bào)

地板
ID:592807 發(fā)表于 2021-11-18 08:46 | 只看該作者
return
就是直接退出函數(shù),如果函數(shù)有返回值,return后面也要加數(shù)據(jù),如果沒有就直接return
回復(fù)

使用道具 舉報(bào)

5#
ID:734017 發(fā)表于 2021-11-18 09:20 | 只看該作者
ByanouQ 發(fā)表于 2021-11-18 07:13
return 是返回一個(gè)值的意思。你這樣能編譯成功?

可以阿,就是沒報(bào)錯(cuò)
回復(fù)

使用道具 舉報(bào)

6#
ID:277550 發(fā)表于 2021-11-18 11:14 | 只看該作者

在主函數(shù)中使用了return,就是讓程序中“飛”起來了,,,,,,,
回復(fù)

使用道具 舉報(bào)

7#
ID:624769 發(fā)表于 2021-11-18 11:49 | 只看該作者
happy2058 發(fā)表于 2021-11-18 09:20
可以阿,就是沒報(bào)錯(cuò)

你把return 刪除后,再編譯一次,會(huì)發(fā)現(xiàn), code 的大小不會(huì)有任何變化。

知道這代表什么嗎?  代表,這是無效代碼(編譯器就當(dāng)你多按了個(gè)回車),編譯的時(shí)候,直接忽略了。
回復(fù)

使用道具 舉報(bào)

8#
ID:982157 發(fā)表于 2021-11-18 12:19 | 只看該作者
return 是退出整個(gè)函數(shù)。break 是退出循環(huán)。
回復(fù)

使用道具 舉報(bào)

9#
ID:47286 發(fā)表于 2021-11-19 00:33 | 只看該作者
happy2058 發(fā)表于 2021-11-18 09:20
可以阿,就是沒報(bào)錯(cuò)

不報(bào)錯(cuò)不一定對(duì) 編譯器只檢察語法錯(cuò)誤 不檢察邏輯錯(cuò)誤
回復(fù)

使用道具 舉報(bào)

10#
ID:86450 發(fā)表于 2021-11-19 08:14 | 只看該作者
打斷點(diǎn)PC看看指針
回復(fù)

使用道具 舉報(bào)

11#
ID:514901 發(fā)表于 2021-11-19 08:53 | 只看該作者
返回值void的函數(shù),return是結(jié)束跳出函數(shù)
回復(fù)

使用道具 舉報(bào)

12#
ID:862309 發(fā)表于 2021-11-19 09:42 | 只看該作者
在C語言中,main()函數(shù)有三種形式。

1、無參數(shù)

#include <stdio.h>

int main(void)
{
   printf("Hello World!\n");
   return 0;
}
2、有兩個(gè)參數(shù)

習(xí)慣上第一個(gè)參數(shù)是整型argc,保存了外部調(diào)用命令的參數(shù)個(gè)數(shù),第二個(gè)參數(shù)是指針數(shù)組或二級(jí)指針argv,以字符串形式保存了與argc對(duì)應(yīng)的參數(shù),如下例子:

#include <stdio.h>

int main(int argc, char* argv[])
{
   int i = 0;
   for (; i < argc; i++) {
       printf("%s\n", argv[i]);
   }
   printf("Hello World!\n");
   return 0;
}
3、有三個(gè)參數(shù)

在argc和argv的基礎(chǔ)上多了一個(gè)環(huán)境變量參數(shù),環(huán)境變量的形式是“ENV=value”,參數(shù)類型是指針數(shù)組或二級(jí)指針,如下例子:

int main(int argc, char* argv[], char* envp[])
{
    int i = 0;
    for (; envp[i] != '\0'; i++) {
        printf("%s\n", envp[i]);
    }
    printf("Hello World!\n");
    return 0;
}
回復(fù)

使用道具 舉報(bào)

13#
ID:982617 發(fā)表于 2021-11-19 18:31 | 只看該作者
return會(huì)直接退出函數(shù),如果函數(shù)有返回值,return后面也要加數(shù)據(jù),如果沒有就直接return
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表