标题: 请教C语言return用法 [打印本页]

作者: happy2058    时间: 2021-11-18 00:37
标题: 请教C语言return用法
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;                                                
                                                }
                                        }
                                }
                        }

        
}
}

我这部分代码没有建函数,return;返回到while(1)?
下面这个能直接退出中断?
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;
                                                                }
}


作者: ByanouQ    时间: 2021-11-18 07:13
return 是返回一个值的意思。你这样能编译成功?
作者: ucmic    时间: 2021-11-18 07:46
return;返回到while(1)?
return 是退出整个函数。break 是退出循环。
作者: 黄youhui    时间: 2021-11-18 08:46
return
就是直接退出函数,如果函数有返回值,return后面也要加数据,如果没有就直接return
作者: happy2058    时间: 2021-11-18 09:20
ByanouQ 发表于 2021-11-18 07:13
return 是返回一个值的意思。你这样能编译成功?

可以阿,就是没报错
作者: devcang    时间: 2021-11-18 11:14

在主函数中使用了return,就是让程序中“飞”起来了,,,,,,,
作者: 188610329    时间: 2021-11-18 11:49
happy2058 发表于 2021-11-18 09:20
可以阿,就是没报错

你把return 删除后,再编译一次,会发现, code 的大小不会有任何变化。

知道这代表什么吗?  代表,这是无效代码(编译器就当你多按了个回车),编译的时候,直接忽略了。

作者: Xmm201    时间: 2021-11-18 12:19
return 是退出整个函数。break 是退出循环。
作者: dzbj    时间: 2021-11-19 00:33
happy2058 发表于 2021-11-18 09:20
可以阿,就是没报错

不报错不一定对 编译器只检察语法错误 不检察逻辑错误
作者: jjwangxu2008    时间: 2021-11-19 08:14
打断点PC看看指针
作者: 郑汉松    时间: 2021-11-19 08:53
返回值void的函数,return是结束跳出函数
作者: hi__    时间: 2021-11-19 09:42
在C语言中,main()函数有三种形式。

1、无参数

#include <stdio.h>

int main(void)
{
   printf("Hello World!\n");
   return 0;
}
2、有两个参数

习惯上第一个参数是整型argc,保存了外部调用命令的参数个数,第二个参数是指针数组或二级指针argv,以字符串形式保存了与argc对应的参数,如下例子:

#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、有三个参数

在argc和argv的基础上多了一个环境变量参数,环境变量的形式是“ENV=value”,参数类型是指针数组或二级指针,如下例子:

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;
}
作者: hezezeze    时间: 2021-11-19 18:31
return会直接退出函数,如果函数有返回值,return后面也要加数据,如果没有就直接return




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1