小编use*_*033的帖子

抽象函数指针

我如何创建一个包含十个函数指针的数组?我有一个for循环,我想在每次迭代时设置一个函数指针指向不同的函数.所以:

//pseudocode
for i (0..10)
    function = array_of_functions[i];
//...
Run Code Online (Sandbox Code Playgroud)

c arrays function-pointers

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

关于缩小这个功能的想法?

我有这个巨大的开关案例,里面有嵌套的switch case语句,我想知道是否有人对如何清理有任何想法?

switch (datatype) {
    case STR:
    {
         switch(operation)
         {
              case EQUALS:
              {
                     /* perform str compare */
              }
              case NOTEQUALS:
              {
              }
              case LT:
              {
              }
              case GT:
              {
              }
              case GTE:
              {
              }
              case LTE:
              {
              }
              default:
                 break;
         }
         break;
    }
    case VER:
    {
         switch(operation)
         {
              case EQUALS:
              {
                     /* perform version compare */
              }
              case NOTEQUALS:
              {
              }
              case LT:
              {
              }
              case GT:
              {
              }
              case GTE:
              {
              }
              case LTE:
              {
              }
              default:
                 break; …
Run Code Online (Sandbox Code Playgroud)

c switch-statement

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

我应该使用$ _ [0]还是复制Perl中的参数列表?

如果我将哈希传递给子:

parse(\%data);
Run Code Online (Sandbox Code Playgroud)

我应该$_[0]首先使用变量还是可以$_[0]在我想从哈希中获取元素时继续访问?澄清:

sub parse
{    $var1 = $_[0]->{'elem1'};
     $var2 = $_[0]->{'elem2'};
     $var3 = $_[0]->{'elem3'};
     $var4 = $_[0]->{'elem4'};
     $var5 = $_[0]->{'elem5'};
}
# Versus
sub parse
{    my $hr = $_[0];
     $var1 = $hr->{'elem1'};
     $var2 = $hr->{'elem2'};
     $var3 = $hr->{'elem3'};
     $var4 = $hr->{'elem4'};
     $var5 = $hr->{'elem5'};
}
Run Code Online (Sandbox Code Playgroud)

第二个版本是否更正确,因为它不必继续访问参数数组,或者Perl最终是否以相同的方式互相干扰它们?

perl hash

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

javascript关联数组初始化错误?

<script>
var tids = {
308: 1,
312: 1,
313: 1,
314: 1
};
</script>
Run Code Online (Sandbox Code Playgroud)

导致XML表达式中的"missing",箭头指向JS错误控制台中的第一个冒号.这不是一个有效的声明吗?

javascript

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

Perl中的字符串比较或哈希查找更快吗?

我有一些代码,在一个部分将执行很多,我是wondernig哪个方式是一个更有效的实现.我将使用for循环来模拟执行的部分:

选项A:

my %sections = (
    'somestring1' => 1,
    'somestring2' => 1,
    'somestring3' => 1,
    'somestring4' => 1
);

for (0..10000)
{
    # $element is chosen at random
    $namespace = $element if $sections{$element};
}
Run Code Online (Sandbox Code Playgroud)

选项B:

for (0..10000)
{
    # $element is chosen at random
    $namespace = $element if ($element eq'somestring1' || 
                            $element eq'somestring2' ||
                            $element eq'somestring3' ||
                            $element eq'somestring4');
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以对此进行基准测试或知道答案,因为我不熟悉基准测试工具.

这段代码在这种情况下可能没有意义,但实际上我需要使用它.

perl hash

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

用于将文件路径拆分为路径和文件的功能

可以说我有一个功能:

void split_path_file(char** p, char** f, char *pf)
{
    //malloc and set *p to file path, malloc and set *f to file name
    //pf is the pointer to the full file and path "C:\sponge\bob\square.pants"
    // edit: leave pf in its origional state
}
Run Code Online (Sandbox Code Playgroud)

什么是实现这一目标的最佳方式?

c string

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

strtoull和长期算术

任何人都可以解释这个程序的输出以及我如何解决它?

unsigned long long ns = strtoull("123110724001300", (char **)NULL, 10);
fprintf(stderr, "%llu\n", ns);

// 18446744073490980372
Run Code Online (Sandbox Code Playgroud)

c string long-integer

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

perl预编译的正则表达式问题

我是否真的从以下方面获得了任何好处(而不是仅在两个if语句中将实际正则表达式替换为$ {pcr})?(实际数据集中有更多行,但仅使用DATA.

my $defs = 0;
my $tests = 0;
my $pcr = qr/\s*[\/\\]?\s*/;
while (<DATA>)
{
    $defs   = ($1 ? 0 : 1) if /<(${pcr})definitions/;
    $tests  = ($1 ? 0 : 1) if /<(${pcr})tests/;
    print "defs: $defs\ntests: $tests\n\n";
}

__DATA__
<what>
</what>
<definitions>
<one />
</definitions>
<tests>
<two />
<three />
</tests>
Run Code Online (Sandbox Code Playgroud)

regex perl

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

使用DOM访问iframe

在下面的代码中,警报工作正常并打印"DIV:IFRAME",但它应该说cNs [1] .childNodes [1] .document没有属性.

HTML:

<div id="WinContainer">
 <div style="display: none;"><iframe id="frame1" name="frame1"></iframe></div>
 <div style="display: none;"><iframe id="frame2" name="frame2"></iframe></div>
</div>
Run Code Online (Sandbox Code Playgroud)

JavaScript的:

var cNs = document.getElementById('WinContainer').childNodes;
alert(cNs[1].tagName + ' : ' + cNs[1].childNodes[1].tagName);
cNs[1].childNodes[1].document.location = 'someurl.pl';
Run Code Online (Sandbox Code Playgroud)

但如果我这样做:

frame1.document.location = 'someurl.pl';
Run Code Online (Sandbox Code Playgroud)

它工作正常.

html javascript dom

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

fgets() 是否总是以 null 结尾它返回的字符串?

这样做安全吗?是否fgets用 null 终止缓冲区,或者我应该在调用之后fgets和调用之前将第 20 个字节设置为 null clean

// strip new lines
void clean(char *data)
{
    while (*data)
    {
        if (*data == '\n' || *data == '\r') *data = '\0';
        data++;
    }
}

// for this, assume that the file contains 1 line no longer than 19 bytes
// buffer is freed elsewhere
char *load_latest_info(char *file)
{
    FILE *f;
    char *buffer = (char*) malloc(20);
    if (f = fopen(file, "r"))
        if (fgets(buffer, 20, f))
        {
            clean(buffer);
            return …
Run Code Online (Sandbox Code Playgroud)

c file-io fgets

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