У меня есть следующая структура в моей программе.Проектирование структуры с числом полей массива символов в ней
#define WIFI_DEVICE_NAME 100
#define WIFI_SERIAL_NO 13
#define WIFI_PROD_NAME 7
typedef struct WiFiDeviceInfo
{
char name[WIFI_DEVICE_NAME];
char fullname [WIFI_DEVICE_NAME];
char productname[WIFI_PROD_NAME];
char serialnumber[WIFI_SERIAL_NO];
};
Этот Struct используется в различных местах. Некоторое время некоторые из полей могут оставаться пустыми. Поэтому при копировании с использованием strcpy_s()
он терпит неудачу. Поэтому я попытался с strlen()
перед выполнением любой операции копирования.
Я изменил структуру и придумал следующий дизайн.
typedef struct WiFiDeviceInfo
{
char name[WIFI_DEVICE_NAME];
unsigned short nLenName;
char fullname [WIFI_DEVICE_NAME];
unsigned short nLenFullName;
char productname[WIFI_PROD_NAME];
unsigned short nproductname;
char serialnumber[WIFI_SERIAL_NO];
};
Я не могу использовать STL здесь, так как его устаревший код, который не использует STL. Есть ли лучший способ для проектирования структуры.
Если вы рефакторинг структуры, вы можете реорганизовывать использование кода тоже. – Puppy
Почему именно вы не можете использовать STL? Я не думаю, что «остальная часть кода не использует его» - достаточно хорошая причина. – svick
@DeadMG Мне не нужно задавать этот вопрос, если STL можно использовать здесь. –