这个相当简单的代码片段由更大的代码体构成,它给出了“警告:赋值从没有强制转换的指针中生成整数[默认启用]”。
为简单起见,我什至将 caddr_t 更改为 char *... 实际上,这是一组动态生成结构的例程的一部分,在这种情况下,它创建了一个数组,该数组可能包含指向任意 malloc 结构的任意指针。并省略了将 calloc'd 数组插入的结构。
这是我在 80 年代做 OO 的方式,我有很多代码都是这样工作的。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
int n = 10;
int i;
char *p;
p = (char *) calloc(n,sizeof(char *));
for (i=0; i<n; i++) {p[i] = (char *) NULL;}
}
那么有没有一种简单的方法可以让现代 C 变得快乐,或者我必须使用 -W 开关来告诉它离开而不打扰我?
是的,我更喜欢像一组用于 PDP-11 汇编器的宏的 C ;-)