我正在学习Pthreads.我的代码按照我想要的方式执行,我可以使用它.但它给了我一个关于编译的警告.
我编译使用:
gcc test.c -o test -pthread
与GCC 4.8.1.我得到了警告
test.c: In function ‘main’: test.c:39:46: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] pthread_create(&(tid[i]), &attr, runner, (void *) i); ^ test.c: In function ‘runner’: test.c:54:22: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] int threadnumber = (int) param; ^
此错误来自以下代码:
#include#include #include #define MAX_THREADS 10 int sum; /* this data is shared by the thread(s) */ void *runner(void * param); int main(int argc, char *argv[]) { int num_threads, i; pthread_t tid[MAX_THREADS]; /* the thread identifiers */ pthread_attr_t attr; /* set of thread attributes */ if (argc != 2) { fprintf(stderr, "usage: test \n"); exit(EXIT_FAILURE); } if (atoi(argv[1]) <= 0) { fprintf(stderr,"%d must be > 0\n", atoi(argv[1])); exit(EXIT_FAILURE); } if (atoi(argv[1]) > MAX_THREADS) { fprintf(stderr,"%d must be <= %d\n", atoi(argv[1]), MAX_THREADS); exit(EXIT_FAILURE); } num_threads = atoi(argv[1]); printf("The number of threads is %d\n", num_threads); /* get the default attributes */ pthread_attr_init(&attr); /* create the threads */ for (i=0; i 我该如何修复此警告?