#include <unistd.h> // For sleep() #include <stdio.h> // For printf() #include <pthread.h> #include <stdint.h> // For intptr_t typedef enum { ONE = 1111, TWO = 2222, THREE = 3333 } MyEnum; static void *threadMain(void *pParam) { // Casting to intptr_t is make it clear what you are doing MyEnum param = (MyEnum) (intptr_t) pParam; printf("Thread received %d\n", param); return NULL; } int main(int argc, char *argv[]) { pthread_t handle; pthread_create(&handle, NULL, threadMain, (void *) THREE); // Stay alive long enough for the thread to do its work sleep(10); }
Programming Tips - How can I pass an enum by value to a thread?
Date: 2015sep23
Language: C/C++
Q. How can I pass an enum by value to a thread?
A. If you are passing a small value (like an enum)
you don't need to malloc() etc. Here is an example.