struct struct_s_BOARD {
char * busname;
char * baudrate;
};
typedef struct struct_s_BOARD s_BOARD;
s_BOARD SlaveBoard = {"0", "250K"};
这种写法会有警告,请帮忙写出一种不带警告的写法,要求不改变struct_s_BOARD 的内容
字符串字面值是常量,而 char* 可以指向可修改的内存,安全做法是将 char * busname; 改为 const char * busname;
方法1:
struct struct_s_BOARD {
char * busname;
char * baudrate;
};
typedef struct struct_s_BOARD s_BOARD;
s_BOARD SlaveBoard = {(char*)"0", (char*)"250K"};
方法2:
struct struct_s_BOARD {
char * busname;
char * baudrate;
};
typedef struct struct_s_BOARD s_BOARD;
// 使用可修改的字符串
char busname[] = "0";
char baudrate[] = "250K";
s_BOARD SlaveBoard = {busname, baudrate};
方法3:
struct struct_s_BOARD {
char * busname;
char * baudrate;
};
typedef struct struct_s_BOARD s_BOARD;
static char busname[] = "0";
static char baudrate[] = "250K";
s_BOARD SlaveBoard = {busname, baudrate};
浙公网安备 33010602011771号