问题列表 - 第41723页

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

C问题:无符号整数和按位运算中的填充位(C89)

我有很多代码对无符号整数执行按位运算.我编写了我的代码,假设这些操作是在固定宽度的整数上,没有任何填充位.例如,32位无符号整数的数组,其中所有32位可用于每个整数.

我希望让我的代码更具可移植性,并且我专注于确保我符合C89(在这种情况下).我遇到的一个问题是填充整数.拿这个极端的例子,取自GMP手册:

然而,在Cray矢量系统上,可以注意到short和int总是以8个字节存储(并且sizeof指示),但仅使用32或46位.指甲功能可以通过传递例如8*sizeof(int)-INT_BIT来解决这个问题.

我也在其他地方读过这种类型的填充.我昨晚实际上在SO上读了一篇文章(请原谅我,我没有链接,我将引用类似记忆的内容),如果你有一个带有60个可用位的双,另外4个可以用于填充和那些填充位可以用于某些内部目的,因此它们不能被修改.


因此,假设我的代码是在一个平台上编译的,其中unsigned int类型的大小为4个字节,每个字节为8位,但最重要的2位是填充位.在这种情况下UINT_MAX会是0x3FFFFFFF(1073741823)吗?

#include <stdio.h>
#include <stdlib.h>

/* padding bits represented by underscores */
int main( int argc, char **argv )
{
    unsigned int a = 0x2AAAAAAA; /* __101010101010101010101010101010 */
    unsigned int b = 0x15555555; /* __010101010101010101010101010101 */
    unsigned int c = a ^ b; /* ?? __111111111111111111111111111111 */
    unsigned int d = c << 5; /* ??  __111111111111111111111111100000 */
    unsigned int e = d >> 5; /* ?? __000001111111111111111111111111 */

    printf( "a: …
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation padding bitwise-operators

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

PDO + MySQL和破坏的UTF-8编码

我在PHP中使用带有MySQL数据库的PDO库,但如果我插入以UTF-8编码的任何数据,如阿拉伯语单词,则将其插入到数据库中,但是?????????.

在我自己的框架中,在创建PDO连接后,我发送了两个查询 - SET NAMES utf8SET CHARACTER SET utf8.它仍然无法正常工作.

例:

loadclass('PDO', array(
    sprintf(
        'mysql:host=%s;port=%s;dbname=%s',
        confitem('database', 'host'),
        confitem('database', 'port'),
        confitem('database', 'name')
    ),
    confitem('database', 'username'),
    confitem('database', 'password'),
    array('PDO::ATTR_PERSISTENT' => confitem('database', 'pconnect'))
));
$this->query('SET NAMES ' . confitem('database', 'charset'));
$this->query('SET CHARACTER SET ' . confitem('database', 'charset'));
Run Code Online (Sandbox Code Playgroud)

解决方法:使用json_encode函数在将数据插入数据库之前转换数据,并json_decode在获取后使用它进行解码.这就是我现在这样做的方式.

php mysql pdo character-encoding

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


Visual Studio 2010 SharePoint可替换参数未被替换

我正在按照SharePoint Bits博客上的说明创建用于在SharePoint 2010内部署的自定义WCF服务.

正如第3步所说,我正在构建我的.SVC文件的内容.请注意,这是一个带有.SVC扩展名的空白文本文件,我已手动将文本输入此文件.

<%@ ServiceHost 
Language="C#" 
Factory="...(omited for length)..."
Service="Assembly.MyService, $SharePoint.Project.AssemblyFullName$" %>
Run Code Online (Sandbox Code Playgroud)

$SharePoint.Project.AssemblyFullName$是一个可替换的参数,当打包解决方案时,visual studio应该替换为我的项目构建的程序集的强名称.

问题是在包装步骤期间不会替换可替换参数.我的项目还包括一个可视化Web部件(.webpart文件包含相同的可替换参数),正确替换了可替换参数.

如何在程序包步骤中替换我的.SVC文件中的可替换参数?

wcf visual-studio-2010 sharepoint-2010

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

为什么编译器会发出框指令来比较引用类型的实例?

这是一个简单的泛型类型,其唯一的泛型参数约束为引用类型:

class A<T> where T : class
{
    public bool F(T r1, T r2)
    {
        return r1 == r2;
    }
}
Run Code Online (Sandbox Code Playgroud)

csc.exe 生成的IL是:

ldarg.1
box        !T
ldarg.2
box        !T
ceq
Run Code Online (Sandbox Code Playgroud)

因此,在进行比较之前,每个参数都被装箱.

但是,如果约束表明"T"永远不应该是值类型,为什么编译器会尝试框r1r2

c# generics comparison boxing equality

36
推荐指数
2
解决办法
1162
查看次数

使用值填充MySQL数据库

我的笔记本电脑上有一个本地安装的MySQL服务器,我想使用其中的信息进行单元测试,所以我想创建一个脚本来自动生成所有数据.我正在使用已经生成表格的MySQL Workbench(来自模型).是否可以使用它或其他工具创建自动脚本以使用数据填充它?

编辑: 我现在看到我不清楚.我确实有单元测试的有意义的数据.当我说"自动生成所有数据"时,我的意思是该工具应该在我的本地数据库中获取有意义的数据,并创建一个脚本以在其他开发人员的数据库中生成相同的数据.

java mysql sql unit-testing mysql-workbench

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

如何说服内存管理器释放未使用的内存

在最近的帖子中(我的程序永远不会释放内存.为什么?)我表明在使用FastMM时,应用程序不会释放大量内存回系统.最近我创建了一个人工测试程序,以确保它不是一个内存的问题,它只出现在FastMM中.

在这个程序中,我创建并销毁一个对象(与前一篇文章中使用的对象相同)500次.

内存要求是("私人工作集"):

没有FastMM
在运行循环之前:1.2MB
运行循环后:2.1MB

使用FastMM(激进的调试模式)
在运行循环之前:2.1MB
运行循环后:25MB

使用FastMM(发布模式)
运行循环之前:1.8MB
运行循环后:3MB

如果我多次运行循环,则内存要求不会增加.这意味着重用未释放的内存,因此这不是内存泄漏(内存泄漏会增加内存占用,每次运行时会有几KB/MB).


我的问题是:

如何在FastMM中禁用此行为?它甚至可能吗?我知道,如果我在没有FastMM或FastMM Release Mode的情况下发布程序,它将"浪费"适量的RAM.但是,根据需要禁用此行为,将帮助我(我们?)识别内存泄漏.实际上在我的第一篇文章中(见链接),很多人都认为我有泄漏.由于这种行为,显然造成了混乱.不,很明显没有泄漏.只是内存管理器拒绝释放大量内存.

它会释放额外的内存吗?什么时候?什么引发了这个?程序员可以触发吗?例如,当我知道我已经完成了RAM密集型任务并且用户可能暂时不使用该程序(最小化它)时,我可以将RAM刷回系统吗?当用户打开我的程序的多个实例时会发生什么?他们不会争夺内存吗?

delphi fastmm

5
推荐指数
3
解决办法
3423
查看次数

在res/values/string.xml中定义字符串?

res/values/string.xml目录中用xml定义字符串有什么意义?它比仅仅将字符串定义为类中的常量更有效吗?(例如数据库表创建脚本等.)

这是组织问题还是Android在内存中处理这些对象有什么好处?

android

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

WP7警报对话框

我见过WP7上的应用程序似乎使用了一个控制器来调整应用程序,播放快速声音,并在屏幕顶​​部显示一个对话框.什么是这个控制,因为我似乎无法在任何地方找到它.

alert windows-phone-7

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