2013-04-10 33 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