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