小编Que*_*ter的帖子

ca65:Include Guard生成“错误:预期标识符”

为了学习如何使用ca65汇编程序,我一直在努力使include guards起作用。谷歌搜索和阅读《ca65用户指南》无济于事。这是产生错误的最小示例。

$ ls -l
total 16
-rw-r--r--  1 me  staff  60 Oct 22 19:40 65.inc
-rw-r--r--  1 me  staff  55 Oct 22 20:01 test.s
$
$ cat 65.inc
.ifndef _65_INC_
.define _65_INC_

.define NUMBER 1

.endif
$
$ cat test.s
.include "65.inc"
.include "65.inc"

    lda #NUMBER
    rts
$
$ ca65 test.s
65.inc(1): Error: Identifier expected
65.inc(2): Error: Identifier expected
65.inc(4): Error: Identifier expected
65.inc(4): Note: Macro was defined here
$
$ ls -l
total 16 …
Run Code Online (Sandbox Code Playgroud)

assembly c64 6502 ca65

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

添加到 Perl 哈希产生令人费解的结果

我对 Perl 有点陌生,这个错误让我困惑了几天。我很难在谷歌上找到任何关于这个特定问题的东西。我会尽量清楚地呈现“线索”。我正在使用 Perl v5.16.1。我的代码中的相关行是这些:

my %result = ();

...

$result{'TABLENAME'} = $tableName;

...

for my $i (1..$numberOfColumns) {
    $result{$columnNames[$i-1]} = $columnValues[$i-1];
}
Run Code Online (Sandbox Code Playgroud)

在我的测试中,$numberOfColumns是 7。问题是 for 循环没有像我期望的那样创建键值对。我会解释。我试过使用 Perl 的调试器和perl -d. 下面的调试器输出显示在最后一行之前一切正常。

  DB<2> c 219
testcode::testsub(modules/testcode.pm:219):
219:        $result{'TABLENAME'} = $tableName;

  DB<3> c 239
testcode::testsub(modules/testcode.pm:239):
239:        for my $i (1..$numberOfColumns) {

  DB<4> p %result
TABLENAMEmyowntableitis

  DB<5> p $result{TABLENAME}
myowntableitis

  DB<6> s
testcode::testsub(modules/testcode.pm:240):
240:            $result{$columnNames[$i-1]} = $columnValues[$i-1];

  DB<6> p $i
1

  DB<7> p $columnNames[0]
id

  DB<8> p $columnValues[0]
1 …
Run Code Online (Sandbox Code Playgroud)

debugging perl hashmap

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

标签 统计

6502 ×1

assembly ×1

c64 ×1

ca65 ×1

debugging ×1

hashmap ×1

perl ×1