共2条
1/1 1 跳转至页
在学C语言编程的过程有些地方不明白,请指教.
问
例如下程序:
#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?
#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 跳转至页
回复
| 有奖活动 | |
|---|---|
| 这个春节你犒赏自己什么了?分享你的故事,有奖征集 | |
| 2026年“我要开发板活动”第三季,开始了! | |
| 硬核工程师专属补给计划——填盲盒 | |
| “我踩过的那些坑”主题活动——第002期 | |
| 【EEPW电子工程师创研计划】技术变现通道已开启~ | |
| 发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
| 【EEPW在线】E起听工程师的声音! | |
| 高校联络员开始招募啦!有惊喜!! | |
我要赚赏金打赏帖 |
|
|---|---|
| 【S32K3XX】Standby RAM的初始化流程被打赏¥18元 | |
| Gravity:中英文语音合成模块V2.0及其串口控制被打赏¥24元 | |
| 全彩色度变化图的绘制被打赏¥27元 | |
| 【FreeRtos】FreeRtos任务栈的生长方向管理方式被打赏¥20元 | |
| 【瑞萨RA8D1 LVGL/LWIP评测】LVGL添加输入设备:EC11旋转编码器被打赏¥39元 | |
| 【瑞萨RA8D1 LVGL/LWIP评测】RA8D1部署FreeRTOS+LVGL被打赏¥33元 | |
| 空气质量检测器设计与实现被打赏¥24元 | |
| 【瑞萨RA8D1 LVGL/LWIP评测】LWIP进行UDP、TCP、HTTP、MQTT功能联合测试被打赏¥41元 | |
| 【瑞萨RA8D1 LVGL/LWIP评测】RA8D1部署FreeRTOS+LWIP被打赏¥36元 | |
| RTOS怎么选?让我来给你答案!被打赏¥15元 | |
我要赚赏金
