小编Eri*_*ric的帖子

size_t vs. uintptr_t

C标准保证这size_t是一种可以保存任何数组索引的类型.这意味着,逻辑上,size_t应该能够保存任何指针类型.我在Googles上发现的一些网站上看到这是合法的和/或应该始终有效:

void *v = malloc(10);
size_t s = (size_t) v;
Run Code Online (Sandbox Code Playgroud)

那么在C99中,标准引入了intptr_tuintptr_t类型,它们是有符号和无符号类型,保证能够保存指针:

uintptr_t p = (size_t) v;
Run Code Online (Sandbox Code Playgroud)

那么使用size_t和有uintptr_t什么区别?两者都是无符号的,并且两者都应该能够保存任何指针类型,因此它们在功能上看起来相同.除了清晰度之外,是否有任何真正令人信服的理由uintptr_t(或者更好的是,a void *)而不是a size_t?在一个不透明的结构中,字段只能由内部函数处理,有没有理由不这样做?

出于同样的原因,ptrdiff_t一直是一个能够保持指针差异的签名类型,因此能够容纳大多数指针,那么它与它intptr_t有何区别?

是不是所有这些类型基本上都服务于同一功能的不同版本?如果没有,为什么?对于其中一个我不能用另一个做什么我不能做什么?如果是这样,为什么C99会在语言中添加两种基本上多余的类型?

我愿意忽略功能指针,因为它们不适用于当前的问题,但随意提及它们,因为我有一种潜在的怀疑,它们将成为"正确"答案的核心.

c pointers size-t

245
推荐指数
5
解决办法
6万
查看次数

Python __call__特殊方法实用例子

我知道__call__在调用类的实例时会触发类中的方法.但是,我不知道何时可以使用这种特殊方法,因为可以简单地创建一个新方法并执行在__call__方法中完成的相同操作,而不是调用实例,您可以调用该方法.

如果有人给我这种特殊方法的实际用法,我将非常感激.

python methods call magic-methods

150
推荐指数
6
解决办法
12万
查看次数

如何修复 numpy 和 Pandas 的“runtimeError: package failed to pass an sanity check”?

这是我得到的错误,据我所知,错误链接上没有任何有用的东西可以解决这个问题。

'...\\venv\\lib\\site-packages\\numpy\\__init__.py'运行时错误:由于 Windows 运行时中的错误,当前的 Numpy 安装 ( ) 未能通过健全性检查。

有关更多信息,请参阅此问题:https : //developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html

我尝试了多个版本的 Python(3.8.6 和 3.9.0)以及 numpy 和 pandas。我目前正在使用 PyCharm 来完成这一切。

python windows numpy python-3.x

138
推荐指数
7
解决办法
8万
查看次数

我可以撤消`git clean -fdx`吗?

我正在按照制作github页面的说明,忘记进入我的git子目录.结果,我只是使用了一个完整的文档目录git clean -fdx.有什么办法可以解除这个可怕的错误吗?

git git-clean

108
推荐指数
12
解决办法
7万
查看次数

将一系列父子关系转换为分层树?

我有一大堆的名字 - parentname对,我想转成少数heirarchical树形结构成为可能.例如,这些可能是配对:

Child : Parent
    H : G
    F : G
    G : D
    E : D
    A : E
    B : C
    C : E
    D : NULL
Run Code Online (Sandbox Code Playgroud)

需要转化为(a)层次结构树:

D
??? E
?   ??? A
?   ?   ??? B
?   ??? C   
??? G
    ??? F
    ??? H
Run Code Online (Sandbox Code Playgroud)

我想要的最终结果是一组嵌套的<ul>元素,每个元素都<li>包含孩子的名字.

有在配对没有不一致(孩子是它自己的父母,父母是孩子的孩子,等等),所以一堆优化大概可以做.

在PHP中,我如何从包含child => parent对的数组转到一组嵌套<ul>s?

我有一种感觉,涉及到递归,但我还没有完全清醒地思考它.

php tree recursion

97
推荐指数
5
解决办法
6万
查看次数

如何在PHP中创建错误404?

我的.htaccess将所有请求重定向/word_here/page.php?name=word_here.然后,PHP脚本检查所请求的页面是否在其页面数组中.

如果没有,我该如何模拟错误404?我尝试了这个,但它没有导致我的404页面ErrorDocument.htaccess显示中配置.

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found");
Run Code Online (Sandbox Code Playgroud)

我是否正确地认为重定向到我的错误404页面是错误的?

php redirect http-status-code-404

96
推荐指数
5
解决办法
16万
查看次数

如何在样式设置器中添加混合行为

我为Button创建了一个Blend行为.如何将其设置为应用程序中的所有按钮.

<Button ...>
  <i:Interaction.Behaviors>
    <local:MyBehavior />
  </i:Interaction.Behaviors>
</Button>
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试:

<Style>
  <Setter Property="i:Interaction.Behaviors">
    <Setter.Value>
      <local:MyBehavior />
    </Setter.Value>
  </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

我收到了错误

"行为"属性没有可访问的setter.

c# wpf xaml expression-blend

84
推荐指数
7
解决办法
4万
查看次数

如何让XSLT在chrome中运行?

这里有一个XML文档,它与相应的XSL文件一起提供.转换留给客户端执行,没有JavaScript.

这在IE(冲击恐怖)中运行良好,但在谷歌浏览器中,只显示文档的文本节点.

我知道可以在Chrome中进行客户端XSL,因为我已经看过它的例子,但我还是能够自己复制这个成功

我究竟做错了什么?

xslt google-chrome

82
推荐指数
5
解决办法
10万
查看次数

是否有可能重载Python赋值?

有没有一个可以重载赋值运算符的魔术方法,比如__assign__(self, new_value)

我想禁止重新绑定一个实例:

class Protect():
  def __assign__(self, value):
    raise Exception("This is an ex-parrot")

var = Protect()  # once assigned...
var = 1          # this should raise Exception()
Run Code Online (Sandbox Code Playgroud)

可能吗?这是疯了吗?我应该上药吗?

python methods class magic-methods assignment-operator

65
推荐指数
7
解决办法
3万
查看次数

LBYL与Java中的EAFP?

我最近在教自己Python并在代码执行之前发现了关于错误检查的LBYL/EAFP习语.在Python中,似乎接受的样式是EAFP,它似乎与该语言一起使用.

LBYL(大号 OOK 安伏ý OU 大号 EAP):

def safe_divide_1(x, y):
    if y == 0:
        print "Divide-by-0 attempt detected"
        return None
    else:
        return x/y
Run Code Online (Sandbox Code Playgroud)

EAFP(它的ê asier到一个 SK ˚F orgiveness比P ermission):

def safe_divide_2(x, y):
    try:
        return x/y
    except ZeroDivisionError:  
        print "Divide-by-0 attempt detected"
        return None
Run Code Online (Sandbox Code Playgroud)

我的问题是:我从来没有听说过使用EAFP作为主要数据验证结构,来自Java和C++背景.EAFP在Java中使用是否明智?或者是否存在过多的异常开销?我知道实际抛出异常时只有开销,所以我不确定为什么不使用更简单的EAFP方法.这只是偏好吗?

python java error-handling idioms

59
推荐指数
5
解决办法
2万
查看次数