"FOUNDATION_EXPORT" vs "extern"

Rudolf Adamkovič picture Rudolf Adamkovič · Jun 8, 2012 · Viewed 23.5k times · Source

I would like to ask what's the reason behind using FOUNDATION_EXPORT instead of extern in Objective C projects.

I've checked this question and using FOUNDATION_EXPORT has earned whopping 340 points (1st place) whereas using extern only 74 points (2nd place).

Could anybody explain why? Is there any practical reason for using FOUNDATION_EXPORT instead of extern?

Thanks!

Answer

Jesse Rusak picture Jesse Rusak · Jun 8, 2012

If you look in NSObjCRuntime.h (in Foundation) you will see that FOUNDATION_EXPORT compiles to extern in C, extern "C" in C++, and other things in Win32. So, it's more compatible across languages and operating systems. For many projects, this won't make any difference.