相关疑难解决方法(0)

NULL,'\ 0'和0之间有什么区别

在C中,似乎有零各个值之间的差- NULL,NUL0.

我知道ASCII字符的'0'计算结果为480x30.

NULL指针通常定义为:

#define NULL 0
Run Code Online (Sandbox Code Playgroud)

要么

#define NULL (void *)0
Run Code Online (Sandbox Code Playgroud)

另外,也有似乎评价的NUL人物.'\0'0

是否有时候这三个值不相等?

这在64位系统上也是如此吗?

c null pointers

287
推荐指数
6
解决办法
28万
查看次数

NULL总是假吗?

假设NULL在C 中始终转换为false 是否安全?

void *somePtr = NULL;

if (!somePtr) {
  /* This will always be executed? */
}
Run Code Online (Sandbox Code Playgroud)

或者应该明确检查价值NULL

c null pointers

62
推荐指数
6
解决办法
4万
查看次数

C中的NULL是否需要/定义为零?

在我的GCC测试程序中,NULL似乎为零,但维基百科说NULL只需指向无法寻址的内存.

有没有编译器NULL非零?我很好奇是否if (ptr == NULL) 更好的做法if (!ptr).

c null

49
推荐指数
2
解决办法
1943
查看次数

什么时候NULL宏不是0?

我隐约记得几年前读过这篇文章,但我在网上找不到任何参考.

你能给我一个NULL宏没有扩展到0的例子吗?

编辑清晰:今天,它扩展为((void *)0),(0)(0L).但是,有些架构早已被遗忘,而这种情况并非如此,并且NULL扩展到了不同的地址.就像是

#ifdef UNIVAC
     #define NULL (0xffff)
#endif
Run Code Online (Sandbox Code Playgroud)

我正在寻找这样一台机器的例子.

更新以解决问题:

我不是在现行标准的背景下提出这个问题,也不是用不正确的术语来扰乱人们.但是,我接受的答案证实了我的假设:

后来的模型使用了[blah],显然是对所有现存的写得不好的C代码的反应,这些代码做出了错误的假设.

有关当前标准中的空指针的讨论,请参阅此问题.

c macros null history

33
推荐指数
2
解决办法
1万
查看次数

在C++中,NULL与False相同

在C++(gcc,VS)中,NULL被认为与False相同.或者更重要的是,如果在逻辑语句中,NULL评估为什么.还有许多其他问题,但C++没有具体问题.

由于某种原因,使用NULL控件循环(;;)只是冻结程序,指示在;;之间放置了除NULL之外的东西.请注意,此代码是我们的教授认为包含NULL值的代码.

c++

6
推荐指数
2
解决办法
7447
查看次数

是否可以在便携式C++ 03代码中散列指针?

是否有可能在C++ 03中可移植地散列指针,该指针尚未std::hash定义?

在C++中包含指针的hashables似乎很奇怪,但我想不出任何方法来制作它们.

我能想到的最接近的方式是做reinterpret_cast<uintptr_t>(ptr),但uintptr_t不需要在C++ 03中定义,我不确定这个值是否可以合法操纵,即使它定义了......这是否可能?

c++ hash pointers language-lawyer

6
推荐指数
2
解决办法
1052
查看次数

标签 统计

c ×4

null ×4

pointers ×3

c++ ×2

hash ×1

history ×1

language-lawyer ×1

macros ×1