找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1641|回复: 12
打印 上一主题 下一主题
收起左侧

请教C语言return用法

  [复制链接]
跳转到指定楼层
楼主
ID:734017 发表于 2021-11-18 00:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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;
                                                                }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:480510 发表于 2021-11-18 07:13 | 只看该作者
return 是返回一个值的意思。你这样能编译成功?
回复

使用道具 举报

板凳
ID:460753 发表于 2021-11-18 07:46 | 只看该作者
return;返回到while(1)?
return 是退出整个函数。break 是退出循环。
回复

使用道具 举报

地板
ID:592807 发表于 2021-11-18 08:46 | 只看该作者
return
就是直接退出函数,如果函数有返回值,return后面也要加数据,如果没有就直接return
回复

使用道具 举报

5#
ID:734017 发表于 2021-11-18 09:20 | 只看该作者
ByanouQ 发表于 2021-11-18 07:13
return 是返回一个值的意思。你这样能编译成功?

可以阿,就是没报错
回复

使用道具 举报

6#
ID:277550 发表于 2021-11-18 11:14 | 只看该作者

在主函数中使用了return,就是让程序中“飞”起来了,,,,,,,
回复

使用道具 举报

7#
ID:624769 发表于 2021-11-18 11:49 | 只看该作者
happy2058 发表于 2021-11-18 09:20
可以阿,就是没报错

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

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

使用道具 举报

8#
ID:982157 发表于 2021-11-18 12:19 | 只看该作者
return 是退出整个函数。break 是退出循环。
回复

使用道具 举报

9#
ID:47286 发表于 2021-11-19 00:33 | 只看该作者
happy2058 发表于 2021-11-18 09:20
可以阿,就是没报错

不报错不一定对 编译器只检察语法错误 不检察逻辑错误
回复

使用道具 举报

10#
ID:86450 发表于 2021-11-19 08:14 | 只看该作者
打断点PC看看指针
回复

使用道具 举报

11#
ID:514901 发表于 2021-11-19 08:53 | 只看该作者
返回值void的函数,return是结束跳出函数
回复

使用道具 举报

12#
ID:862309 发表于 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;
}
回复

使用道具 举报

13#
ID:982617 发表于 2021-11-19 18:31 | 只看该作者
return会直接退出函数,如果函数有返回值,return后面也要加数据,如果没有就直接return
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表