viabtc / viabtc_exchange_server

A trading engine with high-speed performance and real-time notification
MIT License
2.67k stars 1.49k forks source link

学习笔记:利用结构体第一个变量的地址 来恢复 完整结构体变量 #265

Closed forthxu closed 3 years ago

forthxu commented 3 years ago

# include <stdio.h>
# include "ev.h"
# include <stdlib.h>

typedef struct ts_ses {
    ev_io ev;
    int i;
} ts_ses;

int ftest(ev_io *io) {

    //利用结构体第一个变量的地址 来恢复 完整结构体变量
    ts_ses *ses = (ts_ses *)io;
    ses->i = 2;

    return 1;
}

int main(int argc, char *argv[]) {

    ts_ses *ses = malloc(sizeof(ts_ses));
    ses->i = 1;

    printf("%i\n", ses->i);
    ftest(&ses->ev);
    printf("%i\n", ses->i);

    printf("server end\n");

    return 0;
}