casting void pointers
Possible Duplicates:
Do I cast the result of malloc?
Should I explicitly cast malloc()'s return value?
你好,
GCC 4.4.4C89
通常我不会从malloc调用中强制转换返回结果。
1 2 |
然而,我在这里读到,如果你投射它可以隐藏错误。如果显式转换为int,它如何隐藏错误?
1 |
另外,我在读一本C编程书,书中说从一个空指针(包括malloc的调用)强制转换是一种很好的编程实践。
哪个是好的编程实践?
1 2 3 4 | int *int_ptr = NULL; void *ptr = NULL; int_ptr = ptr; |
或
1 | int_ptr = (int*)ptr; |
非常感谢您的建议,
How does it hide errors if you
explicitly cast to an int?
它可以隐藏在调用
Also, I was reading a c programming
book that stated it was good
programming practice to cast from a
void pointer including a call from
malloc.Which would be good programming
practice?
没有必要在C中显式地强制转换
唯一一次执行EDCOX1(0)的显式转换是因为您将编译代码为C++,因为C++不允许将其作为隐式转换。(但是如果你正在编写C++代码,在这种情况下你应该使用EDCOX1 9)。
除非是为了让GCC在您的环境中安静下来,或者如果它是由同事授权的,等等,否则不要设定
强制转换或不强制转换,