在目标C中获取错误静态const声明

时间:2011-05-04 06:33:47

标签: objective-c

我是目标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 个答案:

答案 0 :(得分:1)

C中的

const int不像在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
};