小编Ger*_*ard的帖子

turbo pascal 程序的调用图

我正在对一个 18 岁的 pascal 程序进行维护。为了帮助我理解一切是如何组合在一起的,我想绘制一个调用图。但是我找不到任何可以为 pascal 源绘制调用图的软件。我目前正在使用 Turbo Pascal 7 并且不知道其他 pascal 编译器的能力。

pascal call-graph turbo-pascal

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

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

为什么加倍.IsNaN有如此奇怪的实现

因此,如果反编译.net源代码,您可以找到此代码

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SecuritySafeCritical]
[__DynamicallyInvokable]
public static unsafe bool IsNaN(double d)
{
  return (ulong) (*(long*) &d & long.MaxValue) > 9218868437227405312UL;
}
Run Code Online (Sandbox Code Playgroud)

所以根据IEEE754 NaN != NaN

所以问题很简单:为什么它看起来不像

[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
[SecuritySafeCritical]
[__DynamicallyInvokable]
public static unsafe bool IsNaN(double d)
{
  return d != d;
}
Run Code Online (Sandbox Code Playgroud)

我的朋友告诉我,实施==可能是return !IsNan(this) && this.InnerEquals(other);

但是NaN的实现在硬件层硬编码,在处理器本身.我们不应该NaN单独处理案件.


还有一个问题.为什么这么愚蠢?

bool b1 = (double.NaN == double.NaN); // false
bool b2 = double.NaN.Equals(double.NaN); //true
Run Code Online (Sandbox Code Playgroud)

http://ideone.com/ZSRYz1

我知道一个实现

[__DynamicallyInvokable]
public override bool Equals(object obj)
{
  if (!(obj is double))
    return …
Run Code Online (Sandbox Code Playgroud)

.net c# floating-point double ieee-754

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

从Ruby中的zip文件中读取文件注释

我在Ruby中做Python挑战.我需要从Zip文件中读取文件内容和注释.RubyZip gem 的内容没问题,但我无法得到评论.有任何想法吗?

ruby zip rubyzip

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

如何以编程方式更改嵌入式HornetQ中的端口

我想更改嵌入式HornetQ中的默认端口.这在hornetq-configuration.xml文件中完成时有效:

<acceptors>
  <acceptor name="netty-acceptor">
    <factory-class>org.hornetq.integration.transports.netty.NettyAcceptorFactory</factory-class>
    <param key="port" value="6446"/>
  </acceptor>
</acceptors>
Run Code Online (Sandbox Code Playgroud)

但是以编程方式改变不会.我从文件加载配置,并尝试覆盖,但没有成功 - 这是我尝试:

// Load configuration
FileConfiguration configuration = new FileConfiguration();
configuration.setConfigurationUrl("hornetq-configuration.xml");

// Prepare configuration objects
String netty = NettyAcceptorFactory.class.getName();
Map<String, Object> transportParams = new HashMap<String, Object>();
transportParams.put(TransportConstants.HOST_PROP_NAME, "localhost");
transportParams.put(TransportConstants.PORT_PROP_NAME, 6446);
TransportConfiguration transpConf = new TransportConfiguration(netty, transportParams);

// add configuration (clearing before didn't helped either))
configuration.getAcceptorConfigurations().add(transpConf);
configuration.start(); // moving this right after the setting the file didn't helped

// start server
HornetQServer server = HornetQServers.newHornetQServer(configuration);
JMSServerManager jmsServerManager = new JMSServerManagerImpl(server, …
Run Code Online (Sandbox Code Playgroud)

java embedded jms hornetq

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

如何为C代码解决MISRA C:2012规则13.2和13.3?

我有C源代码,并且使它符合MISRA。我收到与MISRA 2012规则13.3和13.2有关的以下错误:

  1. 增量/减量运算与其他具有副作用的运算[MISRA 2012 Rule 13.3,咨询] buf [count ++] = U1RXREG;

  2. 双方都有副作用[MISRA 2012规则1.3,必填],[MISRA 2012规则13.2,必填] buf [count] = U1RXREG;

问题1的源代码

 void UART_call(void)
 {
    if(count < BUF_SIZE)
    {
        buf[count++] = U1RXREG;
        Flag = 1;
    }
    else
    {
        count = 0;
        Flag = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

解决了问题1代码的13.3错误后,我遇到了MISRA 1.3和13.2错误。问题2的源代码

void UART_call(void)
 {
    if(count < BUF_SIZE)
    {
        buf[count] = U1RXREG;
        count = count + 1U;
        Flag = 1;
    }
    else
    {
        count = 0;
        Flag = 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

c embedded misra

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

检查 8 位字符是否为字母数字

此 C# 代码将返回意外结果:

char x = Convert.ToChar(0xff);
Console.WriteLine( Char.IsLetterOrDigit(x));
Run Code Online (Sandbox Code Playgroud)

它打印的True是我希望得到的False。我认为这是因为IsLetterOrDigit期望 Unicode 字符作为输入而不是我转换的扩展 ascii 值。

我怎样才能做到这一点?我正在从串行端口读取连续的二进制字符串,其中需要删除有问题的字符以进行报告。

c# ascii

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

Ruby:如何将字符串转换为二进制文件并将其写入文件

数据是UTF-8字符串:

data = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08'
Run Code Online (Sandbox Code Playgroud)

我尝试过File.open("data.bz2", "wb").write(data.unpack('a*'))各种各样的解压缩,因为没有成功.我只是获取文件中的字符串而不是字符串中的UTF-8编码二进制数据.

ruby utf-8

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

USB 描述符的 ID_SERIAL 和 ID_SERIAL_SHORT udev 属性有什么区别

ID_SERIALID_SERIAL_SHORTudev 属性有什么区别。udev 如何为这 2 个 udev 属性 ID 分配值。我正在编写 USB 驱动程序,我正在使用udev_device_get_property_value()方法来获取 udev 属性的值。在这种情况下,我可以看到上面提到的 2 个类似的属性。我找不到这些信息的解释文件。

c usb udev linux-device-driver

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

Facebook Marketing API广告过滤

我正在使用Facebook Marketing API并进行调用以获取属于一个帐户的广告集(https://developers.facebook.com/docs/marketing-api/reference/ad-account/adsets/)。我的问题是,对于我的一个广告帐户,有很多可用的广告集,因此通话时间很长,或者页面数很多。有没有办法我可以将日期过滤添加到请求中,以便它将过滤掉指定日期以外的所有那些广告集?

这是我用虚拟行为ID发出的请求:

act_12345678?fields=account_id,name,currency,business{id},adsets{id,name,campaign{id,name,start_time,stop_time,spend_cap,status,insights.date_preset(lifetime){spend}},start_time,end_time,adset_schedule,billing_event,lifetime_budget,budget_remaining,daily_budget,lifetime_imps,status,configured_status,optimization_goal,is_autobid,insights.date_preset(lifetime).as(lifetime_insights){spend}, insights.time_range({'since':'1990-01-01', 'until':'2018-04-26'}).as(insights_to_date){spend}}
Run Code Online (Sandbox Code Playgroud)

facebook facebook-graph-api facebook-marketing-api

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