In principle, dynamic linking means that the address for calling the function is not encoded in the code segment of your program when it is translated into assembly language, but instead is obtained from another place, i.e. stack variables, array search, etc.
At a higher level, if you have a line of code:
foo(bar)
, , . foo , , .