如果我尝试返回一个未初始化的变量,它会保证该值始终为空/零?关于返回一个未初始化的变量(C/Obj-C)
例如:
struct Rect rect_with_zero_value(){
struct Rect aRect;
return aRect; // Will `aRect` always contain 0 value inside the C struct?
}
void * nullPointer(){
void * pointer;
return pointer; // Will `pointer` always be `Null`?
}
更新
我找到一种方法来确保返回的值总是空/零除了该类型void
任何返回类型:
#define returnNullValue(ReturnType) \
ReturnType retVal; \
memset(&retVal, 0, sizeof(ReturnType)); \
return retVal
struct Rect rect_with_zero_value(){
returnNullValue(struct Rect); // Return a rect struct which contains 0 value.
}
void * nullPointer(){
returnNullValue(void *);
}
因为我在做metapr使用C宏编程,我需要找到一种通用的方法来确保返回值总是空/零,如果不是。我认为这是解决方案。不是吗?
请问什么意思是“半随机”? – alk 2014-08-31 11:51:14
你应该考虑垃圾是随机的。但事实上,对于那些处于未初始化变量的垃圾,有一些可预测的模式,所以它不是真正的随机。这就是我称之为“半随机”的原因,意思是“毫无意义和任意的,但不是真正的随机和不可预测的”。 – 2014-08-31 11:53:57