![]() |
1
1
您正在尝试创建地址为零的符号。最后一个示例可能是在C编译器/语言中实现这一点的唯一方法。 最有可能解决问题的方法是查看链接器程序的输入文件。大多数链接器允许您将标签foo定义为零。 在unix ld脚本中,这只是: FoO=0; |
![]() |
2
16
我一定错过了什么,但什么不管用
|
![]() |
3
2
在类中,可以重写
这会导致用户的行为
如果你想知道
或者你可以用铸造,所以
|
![]() |
4
2
您需要的是一个包含空地址的引用。这是非常糟糕的做法,但下面是:
请不要这样做。自动节拍可能是更好的选择。 |
![]() |
5
0
好吧,这一定是个问题,但你想要一个值为0的指针? 怎么样
你不必做那么多麻烦事:指针只是编译器将一个类型与之关联的一个数字;如果你想让这个数字为0,就给0赋值。 哦,回答另一个问题,并不是语言和它有任何关系,只是你不一定知道位置0中是什么。我们在使用BSD代码时遇到了很多问题,因为在早期的BSD Unices中,*0==0是可靠的。所以人们会写
因为当它们在字符串末尾取消引用0x00时,它查看了值为0的位置0。不幸的是,在其他平台上并不一定如此。 |
![]() |
6
0
我真的怀疑在标准C99中是否有这样的方法。在标准C++中,如果创建对象,则很难将其引用,因为未定义空指针常量,指针常量中的常数积分0是空指针常数。(是的,你可以试试
所以,我的下一个问题是你想在这里完成什么。如果你试图用奇怪有趣的方式来扭曲语言,根据标准,它不会以这种方式扭曲语言。如果你有合法的用途,它会是什么? |
![]() |
7
0
我觉得你很接近,只是一步指针间接离开。
从您的代码示例来看,不需要取
因此,而不是:
你可以:
注意,这会去掉变量
唯一的警告是你现在需要
|
![]() |
8
0
好吧,我们有:
好吧,这很理想。首先是C部分,这很容易。我不明白你的观点,你不能把它嵌入宏中。对我来说很好。
现在,C++部分。把东西放在nullp.hpp中:
现在,我们需要做的就是把东西粘在一起:
现在,您可以使用
|
![]() |
9
0
听着,我很抱歉,但你把这件事弄得太复杂了。 如果你想用C语言调用这个东西,你需要一个指向函数的指针。例如,你有
现在,在以后的代码中,您可以
你不需要处理加载程序,也不需要——也不应该使用——任何快速的宏,除非你 真的? 真的? 有充分的理由这样做。这都是C标准。 |
![]() |
10
0
我认为没有一种标准的方法来定义地址为0的内容。或者更确切地说,它是未定义的,因为它可能会取消引用0,这是未定义的(或者它是平台特定的?)在标准中。 你想做什么? |
![]() |
11
-1
如果使用C++,可以使用引用:
|
|
savak · 当对象持有对运行线程的引用时,它是否可以进行垃圾回收? 9 年前 |
![]() |
Sayooj Valsan · 网络回调的弱引用坏主意? 9 年前 |
![]() |
Hugues BR · 作为iVar的weakSelf 11 年前 |