定义数组时出错,即使它是通过常量设置的

发布于 2024-07-17 20:13:07 字数 249 浏览 4 评论 0原文

我知道这确实很基本,但它让我难住了......

在 Objective-C 中我试图写:

const int BUF_SIZE = 3;

static char buffer[BUF_SIZE+1]; 

但我得到的缓冲区的存储大小不是恒定的。 如何让 Xcode 意识到我将其设置为常量 + 1...? 或者这不可能......?

谢谢...!

乔尔

I know this is really basic, but its got me stumped...

In Objective-C I'm trying to write:

const int BUF_SIZE = 3;

static char buffer[BUF_SIZE+1]; 

But I get a storage size of buffer isn't constant. How do I make Xcode realise that I'm setting it to a constant, + 1...? Or is this not possible...?

Thanks...!

Joel

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

韬韬不绝 2024-07-24 20:13:07

我认为这是 C 的事情——如果我没记错的话,C 只允许你用文字表达式(没有任何符号)指定数组大小。 我只是使用 #define 常量作为解决方法。

I think it's a C thing—if I recall correctly, C only allows you to specify array sizes with literal expressions (no symbols whatsoever). I'd just use a #define constant as a workaround.

浅黛梨妆こ 2024-07-24 20:13:07

您可以使用枚举:

enum
{
    BUF_SIZE = 3
};

或宏

#define BUF_SIZE 3

You can use an enum:

enum
{
    BUF_SIZE = 3
};

Or a macro

#define BUF_SIZE 3
萌无敌 2024-07-24 20:13:07

在 gcc 中也会发生这样的事情:

#define LPBUFFER_LGTH ((int) (2*MS25))

以及。
解决方法如上所述:硬编码您想要的常量。 我认为问题在于“定义的定义”,即。 两次。

Happens in gcc with things like:

#define LPBUFFER_LGTH ((int) (2*MS25))

as well.
Workaround as above: hardcode the constant you want. I think the problem is with a 'define of a define' ie. twice.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文