多執行緒傳遞多個引數可以透過以下方法來實現 typedef struct { void *arg1; void *arg2; //加個 semaphore; } ARG;void func(void * arg1, void * arg2){ ARG a; a.arg1 = arg1; a.arg2 = arg2; //初始化a.semaphore = 0; pthread_create(&tid, routine, NULL, &a); //wait a.semaphore}void* routine(void* arg){ ARG* a = (ARG *)arg; void* arg1 = a->arg1; void* arg2 = a->arg2; //post a.semaphore} 引數表又稱形式引數表,它包含有任意多個(含0個,即沒有)引數說明項,當多於一個時其前後兩個引數說明項之間必須用逗號分開。 每個引數說明項由一種已定義的資料型別和一個變數識別符號組成,該變數識別符號稱為該函式的形式引數,簡稱形參,形參前面給出的資料型別稱為該形參的型別。一個函式定義中的可以被省略,表明該函式為無參函式,若用void取代,則也表明是無參函式,若不為空,同時又不是保留字void,則稱為帶參函式。
多執行緒傳遞多個引數可以透過以下方法來實現 typedef struct { void *arg1; void *arg2; //加個 semaphore; } ARG;void func(void * arg1, void * arg2){ ARG a; a.arg1 = arg1; a.arg2 = arg2; //初始化a.semaphore = 0; pthread_create(&tid, routine, NULL, &a); //wait a.semaphore}void* routine(void* arg){ ARG* a = (ARG *)arg; void* arg1 = a->arg1; void* arg2 = a->arg2; //post a.semaphore} 引數表又稱形式引數表,它包含有任意多個(含0個,即沒有)引數說明項,當多於一個時其前後兩個引數說明項之間必須用逗號分開。 每個引數說明項由一種已定義的資料型別和一個變數識別符號組成,該變數識別符號稱為該函式的形式引數,簡稱形參,形參前面給出的資料型別稱為該形參的型別。一個函式定義中的可以被省略,表明該函式為無參函式,若用void取代,則也表明是無參函式,若不為空,同時又不是保留字void,則稱為帶參函式。