这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 在学C语言编程的过程有些地方不明白,请指教.

共2条 1/1 1 跳转至

在学C语言编程的过程有些地方不明白,请指教.

院士
2006-09-17 18:14:16     打赏
在学C语言编程的过程有些地方不明白,请指教.



关键词: 在学     语言编程     过程     有些     地方     明白     指教    

院士
2006-12-22 22:43:00     打赏
2楼
问 例如下程序:
  #include<reg51.h>
  #define nchar1 data unsigned char:
  #define nchar2 unsigned char;

void main(void)
  {
     int kk;
     nchar1 repeat1;
     nchar2 repeat2;
     nchar2 buffer[8];
     nchar2 code length[]="1234567890";
   }

就以上程序来说.repeat1,是放在RAM底128字节里的,那repeat2和buffer[8]是不是也是放在ram里的,如果是,那么nchar1和nchar2不是用法一样吗?这个data还有什么意思呢?
还有 length[]是不是放在单片机的rom里的?用unsign char code 是不是不可以定义变量的? 1: 抢个第一对于你的第一个问题,我的理解是:因为在keil c51中有三种编译的模式:大、中、小。而编译器对这三种模式的ram分配有不同的方案。具体的建议你去看看c51bbs里面的那本400多页的keil c的pdf文档。如果你用的是小模式的话,nchar1和nchar2是没有区别的。
2.length[]的确是放在单片机的rom中。
3.用unsign char code应该是不能定义变量的。我也没有试过行不行,但是我想既然是rom就应该不行,你自己试试看。
程序的第三行有点错误。 2: 谢谢 今晚打老虎  3: 使用DEFINE 后面是不能跟分号的,语法错误 4: 可以的nchar2 code length[]="1234567890";这样用是可以的,只是把length数组作为常量用,可以节省RAM空间。 5: 语法错误应该是这样定义:
#define uchar1 unsigned data char
#define uchar2 unsigned char
在用define时不要用分号,OK?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]