当前位置:  开发笔记 > 编程语言 > 正文

如何在Objective-C头文件中定义数组?

如何解决《如何在Objective-C头文件中定义数组?》经验,为你挑选了2个好方法。

我在我的主文件中有这个代码:

int grid[] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
               1 , 2 , 3 , 2 , 3 , 2 , 3 , 1 , 
               1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 
               1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 
               1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 
               1 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 
               1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 };

如何在我的标题中定义它,以便我可以在整个班级中访问变量?



1> Parappa..:
extern int grid[];

我们假设您有一些这样的代码:

int grid[] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
        1 , 2 , 3 , 2 , 3 , 2 , 3 , 1 , 
        1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 
        1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 
        1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 
        1 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 
        1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 };

int arr_sum(int* arr, int len)
{
    int sum = 0;
    for (int i = 0; i < len; i++) {
            sum += arr[i];
    }
    return sum;
}

int main(int argc, char** argv)
{
    printf("%d\n", arr_sum(grid, sizeof(grid)/sizeof(int) ));
    return 0;
}

如果你想将它分成两个不同的文件,比如说,你可以拥有以下内容,例如:

在grid.c中:

int grid[] = { 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
        1 , 2 , 3 , 2 , 3 , 2 , 3 , 1 , 
        1 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 
        1 , 0 , 1 , 0 , 1 , 0 , 1 , 1 , 
        1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 
        1 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 
        1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 };

在main.c中:

extern grid[];

int arr_sum(int* arr, int len)
{
    int sum = 0;
    for (int i = 0; i < len; i++) {
            sum += arr[i];
    }
    return sum;
}

int main(int argc, char** argv)
{
    printf("%d\n", arr_sum(grid, sizeof(grid)/sizeof(int) ));
    return 0;
}



2> Adam Rosenfi..:

您无法在标题中定义它.您必须在标头中声明它并在source()文件中定义.m:

// In MyClass.h
extern int grid[];

// In MyClass.m
int grid[] = {...};

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有