получение статических объявлений с ошибками const в цели C - PullRequest
1 голос
/ 04 мая 2011

Я новичок в цели C. Я портирую с c ++ на цель 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 Ответ

1 голос
/ 04 мая 2011

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
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...