找回密码
 注册
查看: 325|回复: 3
打印 上一主题 下一主题

在程序的开始使用#define定义变量类型,但在函数中却不被认可,啥原因啊?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-10-31 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
是这样的:在用C51编一个小的测试程序,在程序的开始位置上已经用了#define uchar unsigend char定义了类型,但是在进行错误检查时,函数中定义变量如果采用了 uchar x就会报错,只有在mian()中可以使用,这是什么原因?还请那位前辈指点一二,在此不胜感谢。# g4 P1 O9 r$ `2 w) M, d/ g
#include"D:\Keil\C51\INC\STC\STC12C5A60S2.H"
" _( W, ~/ [0 T* W* p# Y#include$ A2 h& X6 q, n& x* D
***it Max7221CS  = P2^1;6 p) {" ?2 e9 `2 r
***it Max7221DIN = P2^0;  U- m6 U; h) m' h
***it Max7221CLK = P2^2;$ [- f9 x4 N4 }- |9 f9 W
#define uchar unsigned char;0 W2 w$ k9 p% P6 N7 h
#define uint unsigned int;) k1 r( X+ v% o% t3 P2 Q7 n1 a
unsigned char DisplayBuffer[8]={2,0,1,0,10,2,10,9};//显示的数字,数字为10的时候显示“-”
' i$ F5 M, j4 n& I6 b# N3 O2 U' N8 j/*********************************************************************! n3 d6 `4 [4 W# U# H! P
                              延时函数
. G# ^, q, B- W, [**********************************************************************/
, H2 \$ S/ P2 X6 c4 Pvoid delayms(unsigned int x)
; r8 i# `  F" Q) Q/ M- j{
- q# q: g" [  A. ?- I& f* X        uchar i;
: g! b. ?, Q1 T( x1 c! Y1 p        while(x--)0 k& p* c$ q+ b0 p4 F$ v, i0 r
        {
; `, R: f: x8 z+ n! A2 w9 w                for (i=0;i<120;i++);* k8 s) x* }- g$ x# }
        }/ ]  d3 u8 p% m+ \! c# j0 ~8 m: G
}7 e' R6 V+ w, x' \) l/ ]0 ~. ~% N
在定义延时函数名时也是这样,如果括号里改用了 uint x也会报错,只有用完整的定义才能通过
2 B, H3 u6 v* R2 q& ]

该用户从未签到

2#
发表于 2022-10-31 10:55 | 只看该作者
把宏定义放在.h文件,用的时候包含这个头文件就好了。

该用户从未签到

3#
发表于 2022-10-31 13:06 | 只看该作者
你要用 typedef 来定义

该用户从未签到

4#
发表于 2022-10-31 13:17 | 只看该作者
#define uchar unsigned char;; {! p# b) X5 v- @; L3 K
#define uint unsigned int;
8 t+ C: C2 K1 \8 [) W; C这两句话后面的分号去掉试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-3 05:12 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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