2013-04-10 84 views
-1

在我的头文件中,我要声明的MEMORY_SIZE变量的语句然后我想创建使用MEMORY_SIZE作为数组的大小两个阵列这是我的头文件的代码:错误:。预期标识符或“(”使用C数组声明

#ifndef MEMORY_SIZE 
#define MEMORY_SIZE 1024*512 
#endif 

在使用用于缓冲器我的主文件的代码IM是:

//buffers 
unsigned char [MEMORY_SIZE] memBytes; 
unsigned char [MEMORY_SIZE] secBytes; 

之后,当我用gcc编译我收到消息“错误:预期标识符或“( '“,对于这两个数组,在后面的代码中,当我尝试使用数组时,我得到”错误:使用未声明的标识符tifier 'memBytes'“

任何人看到这个问题?

+1

你应该在你的宏定义添加括号:'#定义MEMORY_SIZE(1024 * 512)'。为了更加安全,在常量上使用'L'后缀:'(1024L * 512L)',因为如果'int'是16位,乘法将会溢出。 – 2013-04-10 21:21:27

+0

感谢您的提示! – Tyler 2013-04-10 21:37:05

回答

3

的问题是,您使用的是C语言编译器编译Java。

unsigned char memBytes[MEMORY_SIZE]; 

抢一个C的书,认真。(看来你确实在这种情况下,删除了Java之一。)

+2

...我笑了:d – 2013-04-10 21:16:44

+0

LMAO我不好......我正在介绍下在同一时间与Java ...哎呦 – Tyler 2013-04-10 21:17:52

+0

@Tyler现在我明白了:d(一些好的建议:**不这么做。**现在我是认真的,这两种语言是如此不同以至于你会有一些严重的头痛,尤其是如果你是初学者的话。) – 2013-04-10 21:18:17