1

IRC ボットをコーディングしようとしています。ボットはサーバーに接続しますが、チャンネルに参加させることができません。

int conn;
char sbuf[512];

// Function I'm trying to use
void join(char *fmt, ...){
    va_list ap;
    va_start(ap,fmt);
    vsnprintf(sbuf,512, fmt,ap);
    va_end(ap);

    printf("<< %s",sbuf);
    write(conn,sbuf,strlen(sbuff));
}

// in main function 
int main(){
    const char * chanm = "test";

    // Here is where I get my error, line 38
    join("JOIN %s\r\n", chanm);
}

誰かが私が間違っていることを教えてもらえますか?

次のエラー メッセージが表示されます: ircbot.c:38 warning: deprecated conversion from string constant to char*

4

3 に答える 3

3

関数の見出しを次のように変更します。

void join(const char *fmt, ...){

問題は、それ"JOIN %s\r\n"定数文字列であり、それを非定数に渡そうとしたことchar *です。fmt関数内で変更するつもりはないのでjoin、 として宣言する必要がありますconst char *fmt

于 2012-08-09T01:06:31.113 に答える
1

これは次の方法で修正できます。

void join(const char *fmt, ...)
//        ^^^^^
于 2012-08-09T01:06:43.523 に答える