Был
char B[200];
в статической библиотеке. Это было упомянуто как
extern char B[]; // (1)
в заголовке, который включен в код клиента.
Однажды мне нужно было использовать sizeof(B)
компилятор пожаловался и изменил на
extern char B[200]; // (2)
успокоил компилятор.
Код библиотеки и клиента - c ++, но он использует связь C (внешние объявления заголовка, окруженные
extern "C" { ... }
Есть ли потенциальная проблема, если я использую (2) вместо (1)?
P.S. Я положил 200 для простоты. это константа, определенная в заголовочном файле, который поставляется вместе с библиотекой.
заголовок библиотеки:
#define MAXLEN 200
На самом деле, даже если это не библиотека, а отдельный файл (модуль компиляции), проблема аналогична.
Есть ли способ, которым (1) можно было бы использовать в этом большом старом коде, который я мог бы сломать с помощью (2)?