В настоящее время я отлаживаю код для определенного алгоритма проекции координат в osgeo / proj.4, чтобы сравнить его с другой реализацией, где я подозреваю наличие ошибки.
proj.4 содержит несколько различныхобъявления для определенной структуры с тем же именем, каждое из которых находится в отдельном .c-файле:
struct pj_opaque {
double phic0;
double cosc0, sinc0;
double R2;
void *en;
};
struct pj_opaque {
double K, c, hlf_e, kR, cosp0, sinp0;
};
(и многие другие).Меня интересует правильное объявление структуры:
struct pj_opaque {
double A, B, E, AB, ArB, BrA, rB, singam, cosgam, sinrot, cosrot;
double v_pole_n, v_pole_s, u_0;
int no_rot;
};
Кажется, это вызывает проблемы в отладчике.Во время выполнения я не могу просмотреть все значения интересующей меня структуры, потому что отладчик использует несовместимое объявление для типа, в котором нет элементов, на которые я хочу смотреть.
Вот пример: Q имеет тип pj_opaque *, я хочу посмотреть на член u_0.В часах структура Q даже не имеет члена u_0.Прямой доступ к нему через Q-> u_0 приводит к ошибке.(класс "XYZ" не имеет члена "UVW")
Существует ли общий способ устранения такой неоднозначности во время отладки, напримерпереключатель компилятора, который делает эти неоднозначные имена уникальными?
Для справки: proj.4 построен с vcpkg в Windows, отладчик - Visual Studio 2017.