[讨论] keil中C语言的();【】;{}三种括号的使用

QWE4562009   2021-11-10 10:31 楼主
keil中C语言的();【】;{}三种括号的使用

/*        名称:K1-K4 控制数码管加减演示
        说明:按下K1后加1计数,按下K2后减1计数,按下K3后清零。
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//段码
uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
//待显示的3位缓冲
uchar Num_Buffer[]={0,0,0};
//按键代码,按键计数
uchar Key_Code,Key_Counts=0;
//延时
void DelayMS(uint x)
{
        uchar i;
        while(x--) for(i=0;i<120;i++);
}       
//显示函数
void Show_Counts_ON_DSY()
{
        uchar i,j=0x01;
        Num_Buffer[2]=Key_Counts/100;
        Num_Buffer[1]=Key_Counts/10%10;
        Num_Buffer[0]=Key_Counts%10;
        for(i=0;i<3;i++)
        {
                j=_cror_(j,1);
                P0=0xff;
                P0=DSY_CODE[Num_Buffer[i]];
                P2=j;
                DelayMS(1);
        }
}
//主程序
void main()
{
        uchar i;
        P0=0xff;
        P1=0xff;
        P2=0x00;
        Key_Code=0xff;
        while(1)
        {
                Show_Counts_ON_DSY();
                P1=0xff;
                Key_Code=P1;
                //有键按下时,数码管刷新显示30次,该行代码同时起到延时作用
                if(Key_Code!=0xff)
                for(i=0;i<30;i++) Show_Counts_ON_DSY();
                switch(Key_Code)
                {
                        case 0xfe: if(Key_Counts<255) Key_Counts++;
                                                break;
                        case 0xfd: if(Key_Counts>0) Key_Counts--;
                                                break;
                        case 0xfb: Key_Counts=0;
                }
                Key_Code=0xff;
        }
}


1.我想知道什么情况下要用空格、逗号?
2.什么情况下用小括号();中括号【】;还有大括号{}?

回复评论 (36)

这些都是基础,也是语法规定的。但是你要让人穷举所有情况,还是有点困难的。

想要了解这两个问题,看几遍C语言教材也能了解大概,更重要的是实践,形成记忆。

点赞  2021-11-10 10:45

看到这个【】符号,一脸懵,原来是[]这个。

点赞 (1) 2021-11-10 10:48

你提的都是语法问题。

除了空格,空格一般是为了美化代码用的,如果不理解(),[],{}这三个括号的用法,建议多看书。

点赞  2021-11-10 11:39

语法问题, 自己看书看不会的话, 找个视频教程一点点看, 有一些那种啰嗦版的, 就是说的很细致的, 

坐而言不如起而行
点赞 (1) 2021-11-10 15:14

花一周时间仔细学一下,你就不在迷茫了

默认摸鱼,再摸鱼。2022、9、28
点赞  2021-11-10 17:25
引用: freebsder 发表于 2021-11-10 17:25 花一周时间仔细学一下,你就不在迷茫了

搞硬件的  理解下 

点赞  2021-11-11 16:49
引用: wangerxian 发表于 2021-11-10 11:39 你提的都是语法问题。 除了空格,空格一般是为了美化代码用的,如果不理解(),[],{}这三个括号的用法,建 ...

你说下撒

点赞 (1) 2021-11-11 16:50
引用: sint27 发表于 2021-11-10 10:45 这些都是基础,也是语法规定的。但是你要让人穷举所有情况,还是有点困难的。 想要了解这两个问题,看几 ...

我在看啊哈C语言这本书  只有这样的书才看得懂 才能吸收  很多教材不是不看 而是看了一天只看了一页!不是卡在这个知识点就是卡在另一个知识点!进度异常的慢

点赞 (1) 2021-11-11 16:51
Num_Buffer[2]=Key_Counts/100;         Num_Buffer[1]=Key_Counts/10%10;         Num_Buffer[0]=Key_Counts%10;  这些啥意思?
点赞  2021-11-11 16:51
引用: QWE4562009 发表于 2021-11-11 16:49 搞硬件的  理解下 

我还是搞软件的呢,pads,ad 照样用。

默认摸鱼,再摸鱼。2022、9、28
点赞 (1) 2021-11-11 17:05
引用: QWE4562009 发表于 2021-11-11 16:51 Num_Buffer[2]=Key_Counts/100; Num_Buffer[1]=Key_Counts/10%10; Num_Buffer[0]=Key_Coun ...

Key_Counts的百位存在Num_Buffer数组的第2位,十位存在Num_Buffer的第一位,个位存在Num_Buffer的第0位

点赞 (1) 2021-11-11 17:19

嗯  我看看

点赞  2021-11-11 17:46
引用: wangerxian 发表于 2021-11-11 17:19 Key_Counts的百位存在Num_Buffer数组的第2位,十位存在Num_Buffer的第一位,个位存在Num_Buffer的第0位

是说除以100取出整数,除以10取出余数,对10取余数?

点赞  2021-11-11 17:50
引用: QWE4562009 发表于 2021-11-11 17:50 是说除以100取出整数,除以10取出余数,对10取余数?

假设你有一个数值123,然后123除以10等于12,然后对12求余10,则得到2。

点赞  2021-11-11 18:02
wangerxian 发表于 2021-11-11 18:02 假设你有一个数值123,然后123除以10等于12,然后对12求余10,则得到2。

这个2就是十位?

本帖最后由 QWE4562009 于 2021-11-12 17:37 编辑
点赞  2021-11-12 17:35
引用: wangerxian 发表于 2021-11-11 18:02 假设你有一个数值123,然后123除以10等于12,然后对12求余10,则得到2。

如果要取出百位1和个位3呢?有没有啥技巧

点赞  2021-11-12 17:38
引用: QWE4562009 发表于 2021-11-12 17:38 如果要取出百位1和个位3呢?有没有啥技巧

要得出百位就除以100再求余10,要得到个位直接求余10

点赞  2021-11-12 23:12
引用: wangerxian 发表于 2021-11-12 23:12 要得出百位就除以100再求余10,要得到个位直接求余10

要得到千位呢?比如1234  得到1

点赞  2021-11-17 11:49
引用: QWE4562009 发表于 2021-11-17 11:49 要得到千位呢?比如1234  得到1

除以1000求余10

点赞 (1) 2021-11-17 13:02
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复