The operation itself implies that both b and c.d must be primitive types and so the semantics of the operation are defined by Zig's language rules.
edit: To clarify - this in contrast to, say C++, where nothing can be inferred about the types of the variables involved and the semantics of the operation, since '+' can be overloaded.
What looks like a field reference (`c.d`) is just a field reference; there are no getters or @property functions that are doing more complicated things.
And similarly with the addition operator, that plus sign is just addition and doesn't call a function somewhere else.
These abstractions are considered useful by the designers of other languages, but they are specifically excluded in Zig. The benefit of not having them being that it's easier to follow the execution flow of the program.