问题列表 - 第31356页

LP64,LLP64和IL32转换

在80年代从16位转换到32位期间,int是16位或32位.使用当前的64位转换命名法,我知道ILP32和LP32机器的传播非常均匀.当时我相信它被理解为int总是遵循任何给定架构的寄存器或指针宽度,并且long将保持32位.

快进25年,我发现LP64是相当主流的,但直到我遇到64位平台[我在2007年发现桌面Linux :)],我总是期望IP64成为下一个合乎逻辑的步骤.

  1. 这是(LP64)64bit的预期演变吗?
    • 这种char <= short <= int <= long关系如何适应这种将整数类型固定到我们留下的每个平台的新方案?
    • 这些过渡方案如何与(您选择{l,u}case)WORD/ DWORD在各种平台上使用相关?
    • Windows的某些区域仍包含INT16位的表单.Windows会不会发展成LLP64还是为时已晚?
    • 为什么int选择这次被抛弃,而不是在32位过渡期间?

c architecture history platform word-size

8
推荐指数
1
解决办法
3086
查看次数

Python列表,查找对象名称,效率建议

假设我有以下对象:

class Foo(object):
  def __init__(self, name=None):
    self.name = name

  def __repr__(self):
    return self.name
Run Code Online (Sandbox Code Playgroud)

以及包含多个实例的列表,例如:

list = [Foo(name='alice'), Foo(name='bob'), Foo(name='charlie')]
Run Code Online (Sandbox Code Playgroud)

如果我想找到一个具有给定名称的对象,我可以使用以下内容:

def get_by_name(name, list):
  return [foo for foo in list if foo.name == name][-1]
Run Code Online (Sandbox Code Playgroud)

这显然意味着:

print get_by_name('alice', list)
>> alice
Run Code Online (Sandbox Code Playgroud)

但是,是否有更有效的数据结构或方法来检索此类对象?实际上,对象名称仅在运行时已知,并且理论上可以在对象的整个生命周期中发生变化.

有什么建议?

更新:

感谢Matt Joiners的回答,我更新了它以支持多个具有相同名称的Foo:

class Foo(object):
    _all_names = {}    
    def __init__(self, name=None):
        self._name = None
        self.name = name        
    @property
    def name(self):
        return self._name        
    @name.setter
    def name(self, name):
        if self._name is not None:
            self._all_names[self._name].remove(self)
        self._name = name
        if name …
Run Code Online (Sandbox Code Playgroud)

python algorithm performance list-comprehension list

3
推荐指数
1
解决办法
370
查看次数

Python:使用变量访问Dict键的值

嗨,我一直在编写一个控制台版本的扫雷,只是为了学习一些Python的基础知识.它使用记录在字典中的坐标系.现在,我已经能够成功实现它,但是使用坐标的"x,y"变量来访问或分配特定坐标键的值似乎......笨重.我提出了两种不同的方法,但是当我不得不经常使用它们时,它们似乎并不优雅.

for i in range(1, ROWS+1):
        for j in range(1, COLS+1):
            mine_field["%i,%i" % (i,j)] = 0
Run Code Online (Sandbox Code Playgroud)

要么

for i in range(1, ROWS+1):
        for j in range(1, COLS+1):
            mine_field[",".join([i, j])] = 0
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但在分配或交换值时确实看起来很乱.有没有更好的方法可以做到这一点?

提前致谢.

python variables dictionary key

1
推荐指数
1
解决办法
1519
查看次数

使用Mercurial启动类似于现有项目的新项目

我在Mercurial(HG)存储库上有一个项目.我即将开始一个新项目,我想首先使用与上述项目完全相同的代码.这两个项目完全不相关.即使他们做类似的事情,每个人都是为不同的客户,不同的名字,不同的品牌,不同的艺术.

我的问题是:

建议的方法是什么:

  1. 克隆(hg clone)项目并开始进行更改?
  2. 存档(hg存档)项目并在存档副本上创建新存储库(hg init)?
  3. 还有其他我不考虑的选择吗?

非常感谢.

version-control mercurial

1
推荐指数
1
解决办法
157
查看次数

Eclipse Android和gitignore

我可以安全地忽略哪些文件/文件夹以包含在git中?

我复制了一个好的项目,删除了它的gen和bin文件夹,并尝试运行该应用程序.Android Launch窗口显示"您的项目包含错误,请在运行您的应用程序之前修复它们.在Package Explorer中项目左侧的图标上有一个红色X.虽然gen文件夹不存在于Windows资源管理器,它在包资源管理器中.

eclipse git android

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

表达式的行为:定义还是未定义?

我有以下代码

int m[4]={1,2,3,4}, *y; 
y=m; 
*y = f(y++); // Expression A
Run Code Online (Sandbox Code Playgroud)

我的朋友告诉我,Expression A行为定义明确,但我不确定他是否正确.

根据他的功能f()介绍sequence point介于两者之间,因而行为定义明确.

有人请澄清一下.

PS:我知道我们不应该为实际目的编写这样的代码.这只是为了学习的目的.:)

c c++ undefined-behavior sequence-points

9
推荐指数
2
解决办法
360
查看次数

将图像加载到文件流

我正在使用加载图像

OpenFileDialog open = new OpenFileDialog();
Run Code Online (Sandbox Code Playgroud)

选择文件后,"打开"将填充多个项目,包括路径.

现在我想将文件加载到文件流(或类似的东西)中,通过网络服务发送......这可能吗?

谢谢

c# openfiledialog filestream

8
推荐指数
2
解决办法
3万
查看次数

在PHP中设置和检索cookie的麻烦

我有三段代码给我带来麻烦.

这个设置cookie

setcookie("verify", "$value", time()+3600);  
Run Code Online (Sandbox Code Playgroud)

这个位于不同的页面上,它确保cookie具有正确的值

if ( $_COOKIE["verify"] != file("name.txt")) { 
header("location: notset.html");
} else { die;  }
Run Code Online (Sandbox Code Playgroud)

这个删除cookie

setcookie("verify", "", time()-3600);
Run Code Online (Sandbox Code Playgroud)

编写cookie的代码实际上并不写cookie.并且变量已设置,但无论cookie何时不设置.因此,当我通过编写"test"手动输入值并将测试写入"name.txt"并转到带有IF语句的页面时,它将带我去notset.html.关于为什么这不起作用的任何想法?

哦,当我在cookie和name.txt中输入测试时删除cookie代码.所以删除代码有效,但前两个没有.

php

1
推荐指数
1
解决办法
64
查看次数

当我按下后退按钮时,onStop()没有被调用

这是正常的吗?

文档说

"可以多次调用onStart()和onStop()方法,因为活动在对用户可见和隐藏之间交替"

当我按下后退按钮时,它将返回上一个完全覆盖旧活动的活动.

这里发生了什么?

android

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

iPhone上端口80上的Web服务器

我已经在一个项目上工作了一段时间,它有一个内置的HTTP服务器,它运行在端口8080上.用户被告知通过例如http://192.168.1.4:8080/访问设备- 效果很好.最近我意识到应用程序可以使用端口80来消除对":8080"的需要,但是如果我尝试将端口设置为80,则会因"常规CFSocket错误"而崩溃.

有关如何在应用程序上为Web服务器启用端口80的任何想法?

以下是一些屏幕截图:

首先 - 在iPad上,应用程序显示您可以访问它的URL.

iPad http://enrogue.com/port80/ipad.jpg

第二 - Firefox,IP:

FF by IP http://enrogue.com/port80/firefox_byip.png

以上是来自商店的真实应用程序,它不是越狱魔法或任何东西.我知道端口<1024是为UNIX系统上的管理员保留的,所以上面的应用程序显然正在做一些特定的事情来访问端口.

iphone networking web-services network-programming

9
推荐指数
1
解决办法
4675
查看次数