Kyr*_*rol 0 c compiler-construction malloc casting
我想知道这之间是否存在真正的区别:
c = (struct_t *) malloc(sizeof(struct_t));
Run Code Online (Sandbox Code Playgroud)
还有这个
c = malloc(sizeof(struct_t *));
Run Code Online (Sandbox Code Playgroud)
除了避免演员之外,编译器在第二种形式方面是否优先于第一种?或者这两种方式完全相同,只是一个"美学"问题?
第一个分配sizeof(struct_t)字节,第二sizeof(struct_t*)个字节.
除此之外malloc,无论你是否投出结果,都没有区别.转换结果使得代码可以接受C++编译器,但它可以隐藏不包含的错误stdlib.h,因此广泛倾向于不将结果转换为C语言.