Hi,
That's a good question.
I'm not a C developer (for now!), but I understand by concept that you should optimize your code in order to get the maximum performance in your application with SDSoC.
About your question, remember that SDSoC is based on HLS, and the way your functions in C are translated to the PL, in order to take as much performance as possible from it, is optimizing your code pipelining the processes executed in your code. Intercommunication between accelerated functions is at the end reduced to AXI communication between blocks instantiated by SDSoC, (whether AXI memory map, DMA transfers, etc). The understanding of how to tell SDSoC how to do that especifically, my bet is that is reduced to pragmas in your code, commands that, through the HLS libraries will make a difference when your functions are instantiated in the hardware platform.
To understand much better how HLS works, (i've never used HLS), and how to optimize your code understanding HLS as part of this game, have a look to the SDSoC Environment document. Chapter 6:
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2015_2/ug1027-intro-to-sdsoc.pdf From page 40, it talks about Hardware Function Interface Details.
Further than this, I'm afraid I can't say much more, it's out of my knowledge. I suggest you ask Xilinx directly if its documentation doesn't give you the proper answer. (either Xilinx, or other Tulipp developers that worked with HLS already!)
Timoteo