c语言 问题error C2059: syntax error : 'constant'

开头定义N2,M1的时候是正常的,想改两个数字就不对了。。。#defineN10#defineM5出来:c:\programfiles(x86)\microsoftvis... 开头定义 N 2,M 1的时候是正常的,想改两个数字就不对了。。。

#define N 10
#define M 5

出来:c:\program files (x86)\microsoft visual studio\vc98\include\winnt.h(5441) : error C2059: syntax error : 'constant'
c:\program files (x86)\microsoft visual studio\vc98\include\winnt.h(5441) : error C2238: unexpected token(s) preceding ';'
定位后出来的东西看不懂。。。T.T
在一个WINNT.H里:
typedef struct _IMAGE_SYMBOL {
union {
BYTE ShortName[8];
struct {
DWORD Short; // if 0, use LongName
DWORD Long; // offset into string table
} Name;
PBYTE LongName[2];
} N; (定位在这里。。。。这是什么啊。。。T.T)
DWORD Value;
SHORT SectionNumber;
WORD Type;
BYTE StorageClass;
BYTE NumberOfAuxSymbols;
} IMAGE_SYMBOL;
typedef IMAGE_SYMBOL UNALIGNED *PIMAGE_SYMBOL;
展开
 我来答
御含灵9r
推荐于2017-10-11 · TA获得超过4157个赞
知道大有可为答主
回答量:3007
采纳率:0%
帮助的人:2691万
展开全部
解决方法是把你的
#define N 10

这句话放在所有包含头文件include语句的下面的位置

也可以建议你不要用宏
const int N=10;
这样也可以

你的N是个宏会被替换成10代码变成

typedef struct _IMAGE_SYMBOL {
union {
BYTE ShortName[8];
struct {
DWORD Short; // if 0, use LongName
DWORD Long; // offset into string table
} Name;
PBYTE LongName[2];
} 10; (定位在这里。。。。这是什么啊。。。T.T)
更多追问追答
追问
没懂,,define本来就是放在include下面的
追答
那就改个名字 不要define N
改成#define N1 10
你的发生冲突了
孟戈大师
2013-12-06 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:173
采纳率:100%
帮助的人:88.7万
展开全部
N一斤给宏定义为10 是个数字常量,不能讲别名起为常量
追问
什么意思,我是一开始定义为#define N 2   #define M 1  的
后来改成#define N 10 #define M 5 就有错了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式