The separate
translation units of a program communicate (
[basic.link]) by (for
example)
calls to functions whose identifiers have external or module linkage,
manipulation of objects whose identifiers have external or module linkage, or
manipulation of data files
.