144

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!

Community
  • 1
  • 1
Rudolf Adamkovič
  • 31,030
  • 13
  • 103
  • 118
  • 12
    You can't really take votes on those answers to be votes for or against the techniques they mention. For one thing, the answer with `FOUNDATION_EXPORT` is nearly two years older than the other! – jscs Jun 08 '12 at 17:41
  • related: http://stackoverflow.com/questions/17668018/when-to-use-uikit-extern-vs-just-extern/17669269#17669269 – justin Oct 05 '13 at 05:15

1 Answers1

178

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.

Jesse Rusak
  • 56,530
  • 12
  • 101
  • 102