1
我的程序中有以下结构。使用其中的char数组字段数设计结构
#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];
};
这个结构用在各个地方。有些时候,一些字段可能会保持空白。所以,当使用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 2011-12-26 17:56:32
为什么你不能使用STL?我不认为“其他代码不使用它”是一个足够好的理由。 – svick 2011-12-26 17:58:09
@DeadMG如果STL可以在这里使用,我不需要问这个问题。 – 2011-12-26 17:59:01