C语言和C51整型数据类型有什么区别

C语言auto整型如果不符初值的话,其初值不确定,如int a; a的初值不确定,但C51里的int里呢,是不是默认初值是0,C51中int a;a的初值是不是0,
看下面的程序,程序没问题,但我想知道move 和speed的初值是不是0
#include<reg51.h>
sbit R=P2^0;
sbit CLK=P2^1;
sbit STB=P2^2;
char code table[]={

0x00,0x01,0x08,0x03,0x08,0x01,0x08,0x11,
0xF8,0x3F,0x04,0x01,0x04,0x01,0x02,0x11,
0xF9,0x3F,0x00,0x01,0x00,0x01,0x00,0x01,
0x00,0x01,0x00,0x21,0xFE,0x7F,0x00,0x00,/*"生",0*/
0x00,0x00,0xF8,0x0F,0x08,0x08,0x08,0x08,
0x08,0x08,0x08,0x08,0xF8,0x0F,0x08,0x08,
0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
0xF8,0x0F,0x08,0x08,0x00,0x00,0x00,0x00,};/*"日",1*/

void delay(int z)
{
int x,y;
for(x=0;x<z;x++)
for(y=0;y<110;y++)
;
}
void WB(char da)//写一个字节的数据
{
char i;
for(i=0;i<8;i++)//循环8次把编码传给锁存器
{
da=da>>1; //右移一位,取出该字节最低位
R=CY; //将该字节最低位传给R
CLK=0; //将数据移入595 ,上升沿
CLK=1;
}
}
void main()
{
int a,move=0,speed=0;
while(1)
{
if(++speed>8) //移动速度控制、
{
speed=0;
move++;
}//移位
if(move>16)//是否完成移位一个汉字
move=0;//从头开始
for(a=0;a<16;a++)
{
WB(table[2*a+move*2]);
WB(table[2*a+1+move*2]);
P1=a;
STB=1; //输出锁存器中得数据,下降沿
STB=0;
delay(2);
}
}
}

你直接用keil仿真读值不就好了吗。对于这个c和c51一样未赋值时,默认为0.不过推荐设置初值,小程序中感觉不出什么差别,在大一些的程序中,你就会发现设置初值的好处了!追问

怎么用keil读值,是在方仿真时的左侧吗,
例如这个程序,左侧显示的是Reg
r0 0x00
r1 0x00
等等 这些我不明白是什么意思,求指点,
这个窗口能设置成直接显示我在程序中定义的变量的当前值吗?

追答

这个不是哎,在仿真时,打开watch & call stack window,watch #1 或者watch #2,F2编辑,输入要看的值,然后debug加上breakpoint,就可以看到任何时候你的变量值了。这是软件调试中常用到的方法。

温馨提示:内容为网友见解,仅供参考
无其他回答

请问大家:C语言和C51有什么区别?
(1)含义不同:1、C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。2、C51是nVIDIA公司推出的首款K8平台整合芯片组的产品系列代号,使用C51系列芯片组的北桥芯片分为两个版本:GeForce6150和GeForce6100,它们与Nforce 400系列的南桥芯片...

C51和标准C语言的主要差别
最主要的是c51主要面向的是硬件,程序的编写思路与标准c差别很大。

给51单片机编程用的C51与C语言有什么区别?
其实区别不是太多。C语言中的所有运算符,在C51中都可以用。但是C51也有特有运算符,如sbit,还有特殊的寄存器名等可以直接写。C语言中没有相关的内容。

c51和一般c语言的不同之处
C语言和c51大部分的地方都是相同的,他们的语句,结构,顺序都是很相似的,只是c51相比与c语言,多了很多变量类型和其他的东西,下面是总结c语言和c51的一些不同之处。变量类型 位变量声明 bit c51中特有的一种变量声明,bit变量位域只有0和1,长度也只有1 存储类型 很多不管学过还是没学过c语言对于这个...

C51和标准C语言的主要差别是什么?
c51是标准c的扩展,使用专用的编译器,如keil 与franklin等;c51特有的有以下几点,可能不全:bit型变量,bdata code xdata pdata idata 存储类型控制字,interrupt 中断函数,最主要的是c51主要面向的是硬件,程序的编写思路与标准c差别很大。

请问单片机C语言编程与单片机C51编程的区别是什么?
51是单片机的一种。基于不同内核(CPU)的单片机,其指令系统不同,所以编译器不同。C51将C编译成51汇编,而单片机C语言应该通指,不过国内常把51与单片机等同起来。

请问单片机C语言编程与单片机C51编程的区别是什么?
c51是基于c语言的,两者的区别就是c语言和汇编语言的区别,所以c51更易学,只要有对应单片机的头文件,兼容性没问题的,建议你学c51吧,现在学汇编的已经不多了,学好了c51前途很光明的。你可以去下载keil3 c51编程开发环境,里面有大部分单片机的头文件,很不错....

C语言和C51一样吗?
C51的语法基本和C语言是一样的。只不过多了一些自己的库函数之类的 你要对开发使用的单片机的资源比较了解,包括寄存器的使用等等 以及外围电路的实现,这个对你的调试是比较有好处的。

51单片机c语言程序
答:楼主先搞清C51中定义数据的类型。char型 8位(-127到128);int型16位-32727到+32728(两个字节)unsigned char是8位但从0到255,unsignde int 16位从0到65535;楼主程序中的TH0\/TL0是8位uchar型;tmp是16位uint型。tmp=TL0|(TH0<<8);这句在执行时先进行类型转换,把TL0\/TH0暂时转换成...

C语言和C51整型数据类型有什么区别
你直接用keil仿真读值不就好了吗。对于这个c和c51一样未赋值时,默认为0.不过推荐设置初值,小程序中感觉不出什么差别,在大一些的程序中,你就会发现设置初值的好处了!

相似回答