ошибка получения статических объявлений const в objective C

#objective-c

#objective-c

Вопрос:

Я новичок в objective C. Я переношу с c на objective c.

 RSDS.h
------
#import <Foundation/Foundation.h>
#import "msg_remote.h"

@interface RSDS : NSObject {

}
@interface RS232Data : NSObject {

    unsigned char m_abTxMsgImage[RMH_MESSAGE_MAX_SIZE]; //
  

Ошибка: изменено по-разному
‘m_abTxMsgImage’ в области файла

 }

msg_remote.h
------------
static const int RMH_MESSAGE_MAX_SIZE = 4096;
  

Ответ №1:

const int в C работает не так, как в C . Он просто объявляет переменную, которую вам не разрешено изменять, и поэтому вам не разрешается использовать ее для определения размера массива в объявлении массива.

У вас есть два варианта исправить это. Либо перекомпилируйте ваше приложение как Objective-C (сделайте это, изменив все .m расширения на .mm ), либо включите ваш

 static const int RMH_MESSAGE_MAX_SIZE = 4096;
  

Для

 #define RMH_MESSAGE_MAX_SIZE 4096
  

или вы можете сделать

 enum 
{
    RMH_MESSAGE_MAX_SIZE = 4096
};