Tag Archives: gcc

提领类型双关的指针将破坏强重叠规则

最近复习C/C++,今日用APR编写了一个生产/消费模型的小程序。结果出现了这样一个奇怪的警告:“提领类型双关的指针将破坏强重叠规则”,让我大惑不解,特此和大家讨论一下。 我用的是gcc 版本 4.2.3 (Ubuntu 4.2.3-2ubuntu7) 线程模型:posix。出现警告的这段是这样的: apr_queue_t *queue = (apr_queue_t *) data; int *d = NULL; while(1){ apr_queue_pop(queue, (void **)(&d)); // -- 此处为出现警告的地方。 printf(“Consumed: %d\n”, *d); } 虽然可以运行无误,但该警告还是让我比较无奈,最后我改成了如下: apr_queue_t *queue = (apr_queue_t *) data; int *d = NULL; void *c = NULL; while(1){ apr_queue_pop(queue, &c); d = (int *)c; printf(“Consumed: %d\n”, *d); } 因为很久没有写C,在这里,我的问题是: [...]