簡體   English   中英

如何將結構成員傳遞給函數

[英]How to pass in a structure member to a function

我需要使用libevent編寫C代碼。 簡而言之,這就是我的期望。 從標准輸入中,一個字符將通過in_read_cb in_read_cb將發送到master_read_cb 然后master_read_cb將發送到系統進行處理。 這兩個函數由libevent設置。 因此,傳遞給它們的變量類型是固定的。

void in_read_cb(struct bufferevent *bev, void *data)
{
//do something
}

void master_read_cb(struct bufferevent *bev, void *data)
{
//do something
}

問題是,我需要將void *data放入結構中,同時在開始處理時添加一個新變量作為master_read_cb標識符。 看起來像這樣:

typedef struct _new_data
{
void *data;
int start;
} new_data;

void in_read_cb(struct bufferevent *bev, struct new_data->data)
{
//do something
//when it meets a condition, new_data->start = 1;
}

void master_read_cb(struct bufferevent *bev, struct new_data->data)
{
//check new_Data->start
//will sent the character for processing if start = 1
}

這完全是錯誤的,因為我如何傳遞函數。 我該如何正確做呢?

您將需要類似這樣的內容,並將指向struct _new_data的指針傳遞給它們:

void in_read_cb(struct bufferevent *bev, void *new_data_ptr)
{
    new_data *ndata = new_data_ptr;
    //do something
    //when it meets a condition, ndata->start = 1;
}

void master_read_cb(struct bufferevent *bev, void *new_data_ptr)
{
    new_data *ndata = new_data_ptr;
    //check ndata->start
    //will sent the character for processing if start = 1
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM