小编Cli*_*rce的帖子

有没有办法改变变量在内存中的存储方式(位大小)?

假设我有以下数据结构(伪代码):

struct
{
  uint8  id;
  bool   failure;
  uint8  value;
}  
Run Code Online (Sandbox Code Playgroud)

现在让我们说我希望以下列方式在内存中存储数据:

bit 7-6:id bit 5:失败位4-0:值

反正在C/C++/Visual Studio中有没有这样做?我知道你可以在Ada做到这一点,但这并不意味着什么.

编辑:抱歉不清楚,我确实需要内存中的特定布局.此结构将用于通过串行通道发送的消息,并且需要符合接口规范

c c++ serial-port visual-studio

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

多个有序列表归结为一个列表,其中顺序是相对的

我有多个有序列表.不幸的是,项目的顺序不是简单的字母或数字比较,否则这是微不足道的.所以我拥有的是:

List #1        List #2       List #3
groundhog      groundhog     easter
mothersday     mayday        mothersday
midsummer      laborday      halloween
christmas
Run Code Online (Sandbox Code Playgroud)

从这里我可以聚集土拨鼠<motherday,但土拨鼠和复活节的关系是未知的.我保证list-to-list中的项目顺序是自我一致的.(即无论发生在哪个列表中,复活节总是在万圣节前)

但我需要的是一个新的有序列表,它只代表其他列表中的每个项目一次,它保留了上面的所有已知关系:

groundhog
easter
mayday
mothersday
midsummer
laborday
halloween
christmas
Run Code Online (Sandbox Code Playgroud)

但是,以下列表也完全有效:

easter
groundhog
mothersday
mayday
midsummer
laborday
halloween
christmas
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种相当快速,通用的算法,我可以用它以这种方式订购N个列表.(正确地使用C#编码,但不是必需的.)

我有解决方案,但它的O(N ^ 2)和一个甚至适度数据集的狗.

c# sorting diff

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

SQL 表上的 XML 读取器返回无效 XML

我有一个 SQL 表,其中有一个 varchar(8) 列,其中偶尔包含二进制数据。(0x01、0x02 等)。(无法更改列的格式或内容。)

当我进入 SQL Server 2005 Management Studio 并运行查询时:

select * 
 from mytable 
 where clientID = 431620
 for xml auto
Run Code Online (Sandbox Code Playgroud)

我得到了有用的结果。注意 proc_counts 是如何编码的:

<mytable clientID="431620" recno="19014235" pdate="2008-03-04T00:00:00"
   proc_counts="&#x1;&#x1;&#x2;&#x1;" otherstuff="foobar" 
   date="2008-02-17T00:00:00"/>
Run Code Online (Sandbox Code Playgroud)

完全有效的 XML,据我所知。现在,当我实际编写 C# 代码来读取这一行时,我在 ReadOuterXml 期间收到异常抛出:

SqlCommand cmd = new SqlCommand("select * from testing xml auto", connection);
using (XmlReader xrd = cmd.ExecuteXmlReader())
{
    xrd.Read();
    while (xrd.ReadState != ReadState.EndOfFile)
    {
        string s = xrd.ReadOuterXml();
        records.Add(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

这会抛出:XmlException 未处理。'',十六进制值 0x01 是无效字符。我想要上面的 XML,但是没有足够的 Google-fu …

c# xml sql sql-server xmlreader

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

如何在两个已知令牌之间进行最小匹配?

我有一些文本,如下所示.我需要对它做一个基本的编辑,但无法理解我需要的正则表达式.也许这只是漫长的一天,我没有看到我需要的东西.

样本数据:

START ITEM = 1235
    BEGIN
        WORD
        RATE = 98
        MORE WORDS
        CODE = XX
        STUFF
    END
    BEGIN
        TEXT
        MORE WORDS
        RATE = 57
        ADDITIONAL TEXT
        CODE = YY
        OTHER THINGS
    END
STOP
START ITEM = 9983
    BEGIN
        WORD
        RATE = 01
        MORE WORDS
        CODE = AA
        STUFF
    END
    BEGIN
        TEXT
        MORE WORDS
        RATE = 99
        ADDITIONAL TEXT
        CODE = XX
        OTHER THINGS
    END
STOP
Run Code Online (Sandbox Code Playgroud)

我给了一个CODE和一个ITEM数字,需要在相应的BEGIN/ END部分编辑速率.幸运的是,这些部分定义为STOP/ START BEGIN/ …

regex perl

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

.Net AppDomains是否提供针对恶意C库的保护?

我有一个不是线程安全的C库- 可能永远不会.我用PInvoke从C#调用它,这很好用.

现在必须从C#程序调用C库,这个程序肯定是多线程的.我可以在C#中通过从单独的AppDomains调用每个C代码实例来管理它,除了看起来效果不佳.我仍然在C库中遇到很多跨线程问题.

AppDomains是否会将C代码混乱(全局等等)彼此隔离或不隔离?如果没有,会是什么?

c c# multithreading appdomain

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