У меня следующая проблема:
void send_Msg(const char* msg)
{
#if channel_free
(void) din_send_msg(channel, msg); // (void) rcd_send_msg(int channel, char* msg);
#else
(void) cin_sendMsg(channel, msg);
#endif
(void) din_send_msg(channel, msg);
выдает мне предупреждение. Передача аргумента 2 'din_send_msg' отбрасывает квалификаторы из целевого типа указателя.
Я знаю, что это потому, что din_send_msg
принимает int и char*
в качестве параметров и превращает мой const char*
в char*
. Изменение (void) din_send_msg(int channel, char* msg);
на (void) din_send_msg(int channel, const char* msg);
и присвоение const char*
локальному указателю ничего не дало. Но есть большая вероятность, что я просто сделал это неправильно.
Как я могу справиться с этим предупреждением?
(И да, я обязательно должен избавиться от него, хотя это просто предупреждение)
din_send_msg
, чтобы ожидать указатель на константный символ, это было бы лучше. И это должно исправить это предупреждение. То же самое относится кcin_sendMsg
, если у него такой же прототип. - person Gerhardh   schedule 16.09.2020