Как я могу определить массив в своем заголовочном файле Objective C?

Это потому, что вы создали запись только для «www.21fighterpilots.com», но пытаетесь получить доступ к «21fighterpilots.com». Это разные адреса. Создайте вторую запись без имени в поле имени на Route 53, и вы должны получить результаты, которые вы ищете.

8
задан Michael Myers 17 March 2009 в 21:32
поделиться

2 ответа

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;
}
8
ответ дан 5 December 2019 в 12:13
поделиться

Вы не можете определить его в своем заголовке. Необходимо объявить это в заголовке и определить его в источнике (.m) файл:

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

// In MyClass.m
int grid[] = {...};
6
ответ дан 5 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: