小编hft*_*hft的帖子

看似毫无意义的#define函数

我遇到了一些代码:

BOOL CBlahClass::SomeFunction(DWORD *pdw)
{
    RETURN_FALSE_IF_FILE_DOESNT_EXIST

    //the rest of the code makes sense...
    //...
}
Run Code Online (Sandbox Code Playgroud)

我看到的一切都很有意义,除了我对RETURN_FALSE_IF_FILE_DOESNT_EXIST这一行有一点疑问

我搜索了这个字符串,然后找到#define:

#define RETURN_FALSE_IF_FILE_DOESNT_EXIST \
        if (FALSE==DoesFileExist()) return FALSE;
Run Code Online (Sandbox Code Playgroud)

我的问题是......到底是什么?有没有什么好的理由让#define像这样?为什么不写:

BOOL CBlahClass::SomeFunction(DWORD *pdw)
{
    if ( FALSE == DoesFileExist() ) return FALSE

    //the rest of the code makes sense...
    //...
}
Run Code Online (Sandbox Code Playgroud)

我能想到的这样做的唯一原因是,它是一个稍微容易一点和写出来"RETURN_FALSE_IF_FILE_DOESNT_EXIST",然后写出来,"如果(FALSE == DoesFileExist())返回FALSE"更讨人喜欢.

有人看到任何其他理由这样做?这种东西有名字吗?

c++ windows c-preprocessor

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

用python读取整个物理文件,包括文件松弛?

有没有一种简单的方法来使用python读取给定文件的所有已分配集群?通常的python read()似乎只允许我读取文件的逻辑大小(当然这是合理的),但我想读取包括松弛空间在内的所有集群.

例如,我有一个名为"test.bin"的文件,其逻辑大小为1234字节,但由于我的文件系统使用大小为4096字节的簇,因此该文件在磁盘上的物理大小为4096字节.即,文件松弛空间中有2862个字节.

我不知道从哪里开始这个问题...我知道我可以从/ dev/sda读取原始磁盘,但我不确定如何找到感兴趣的集群...当然这是有一个文件系统的整点(将文件名称与磁盘上的扇区相匹配),但我不太了解python如何与文件系统交互来解决这个问题......但是......任何帮助或者非常感谢参考指针.

python

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

gpg 签名似乎“消除”了完整性

谷歌没有回答这个问题,因为谷歌的结果充斥着与我的形式相似但含义截然不同的问题。我提到这一点是因为我已经知道使用 CAST5(默认值)时存在关于消息完整性的投诉的常见问题。我只是想澄清一下,我不是在问有关 CAST5 的问题,我是在问有关 AES256 的问题(始终是 AES256,我的默认设置为 AES256),但我很好奇签名和未签名之间的差异。好的,所以,事情是这样的:

当将 gpg 与 AES256 结合使用时,消息完整性默认情况下处于“打开”状态,因此当我仅使用 AES256 对称加密时,我不会收到任何有关消息完整性的投诉。例如,假设我有这个文件“test.txt”:

 $ ls
test.txt
 $ cat test.txt
blah blah blah
Run Code Online (Sandbox Code Playgroud)

我对称加密:

 $ gpg --symmetric ./test.txt        <---[Symmetric AES256]
 $ ls
test.txt  test.txt.gpg
 $ gpg -d ./test.txt.gpg
gpg: AES256 encrypted data
gpg: encrypted with 1 passphrase     <---[No complaint about integrity]
blah blah blah
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加签名,则 gpg 会抱怨消息完整性,即使我仍在使用 AES256。像这样:

 $ gpg --symmetric --sign ./test.txt

You need a passphrase to unlock the secret key for
user: "hft"
4096-bit RSA key

gpg: …
Run Code Online (Sandbox Code Playgroud)

encryption gnupg integrity

5
推荐指数
0
解决办法
1346
查看次数

如何在vb6中声明用户定义类型的数组

Type ABFator
    a As Single
    b As Sinlge
End Type

Dim ABFactorArr(8) As ABFactor
Run Code Online (Sandbox Code Playgroud)

'基本上我想声明一个包含八个 ABFactor 的数组,然后我可以访问它

我这样做,编译器给出了未定义的错误用户定义类型

谢谢

arrays vb6 vba user-defined-types

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

在 Python 中对列表求和的最有效方法

A在 Python 中获取整数列表总和的方法有以下两种:

  1. 内置sum功能:sum(A)

  2. 使用加法器 lambda 减少函数: reduce(lambda x, y: x + y, A)

使用其中任何一个是否有速度优势,或者它们的性能大致相同?

python performance python-2.x

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