The difference of macro commands

Hello, about macro commands, what is the difference between the following two commands?

macro def(i)[i, i#B, i#C]// EOM // vector field definition
macro init(i)[i, i, i]// EOM // vector field initialization

As written in your code snippet and in the many available examples, def is for defining a variable, init is for initializing a variable.