C ++: неопределенная ссылка на константный указатель при объявлении как extern - PullRequest
0 голосов
/ 26 февраля 2020

Я получаю ошибку компилятора при программировании следующего:

  • file1. cpp: объявление / определение нескольких переменных
  • file1. cpp: определение массива указателей указывающий на каждую из этих переменных -> этот массив должен быть const (= всегда указывать на эти переменные)
  • file2. cpp: здесь я хочу использовать массив указателей и используйте переменные, на которые он указывает.
    //file1.cpp
    int a,b,c,d;
    int *const pa[4] = {&a, &b, &c, &d};

    //file2.cpp
    extern int *const pa[4];

при его компиляции сбрасывает ошибку в file2. cpp:

undefined reference to `pa'

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

С уважением: -)

1 Ответ

1 голос
/ 26 февраля 2020
Переменная

A const имеет внутреннюю связь по умолчанию. Чтобы получить внешнюю связь, добавьте extern к определению:

extern int *const pa[4] = {&a, &b, &c, &d};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...