What exactly do JUCE_API and JUCE_CALLTYPE do

I'm trying to learn more about the underlying library design of JUCE (because it is awesome as we all know). What exactly do these macros do?

Uncover the mystery by looking at the definitions: they contain a bit of documentation. :)

https://github.com/julianstorer/JUCE/blob/master/modules/juce_core/system/juce_PlatformDefs.h#L47

https://github.com/julianstorer/JUCE/blob/master/modules/juce_core/system/juce_StandardHeader.h#L119

Short version: Argument passing conventions and DLL export visibility.

 

 

Ooops got it now. Was being a bit of a moron using XCode's "Jump to definition" feature which dumped me out at a place where nothing much was going on . . . 

#ifndef JUCE_API

 #define JUCE_API   /**< This macro is added to all juce public class declarations. */

#endif

If I had of scrolled up a few lines, I would have answered my own questions. DoH!