Разница между = и :=

Я новичок в программировании на ассемблере 6502 и использую набор cc65 (целью является C64). Официальная документация указывает, что "The assembler accepts the standard 6502/65816 assembler syntax" однако мне трудно найти авторитетную ссылку. Одна вещь, которую я не понимаю, - это разница между двумя операторами присваивания (?) в сборке 6502 "=" и ":=".

Например, в файле "c64.inc" мы находим

BASIC_BUF       := $200         ; Location of command-line
BASIC_BUF_LEN   = 89            ; Maximum length of command-line

person staworko    schedule 03.05.2019    source источник
comment
Может быть, поможет эта ссылка?   -  person Some programmer dude    schedule 03.05.2019


Ответы (2)


Как указывает @JoachimPileborg, cc65 документация объясняет это. Первый оператор = создает символ и присваивает ему заданное значение. Второй оператор := также делает символ меткой. Имена и значения меток экспортируются как часть отладочной информации компилятором (с опцией -g), чего нельзя сказать об обычных символах. Следовательно, имеет смысл использовать := для определения ячеек памяти и = для других целей.

person staworko    schedule 03.05.2019

:= объявляет и назначает, = просто назначает

:= — это краткая форма для объявления и инициализации. где = — оператор присваивания, используемый так же, как и в другом языке программирования.

x := 12
y := "value"

x объявляется как int и инициализируется значением 12, где y объявляется как string и инициализируется значением value

var x = 12
var y = "value"
person Rakesh Jakhar    schedule 03.05.2019
comment
Я понятия не имею, почему у этого ответа так много голосов. Это даже не cc65 синтаксис. - person JeremyP; 07.05.2019
comment
@JeremyP его простой OP спрашивает разницу, а ответ имеет объяснение - person Rakesh Jakhar; 07.05.2019
comment
Ответ неверный. В cc65 единственная разница между := и = заключается в том, что первый создает метку, а также символ, то есть отладчик знает об этом и обрабатывает его как адресную метку. - person JeremyP; 07.05.2019