Why I can call a free function before it's defined in Objective-C?

Viewed 20

I find some code like below worked as expected. In my opinion, a C function must be declared or forward declared before use.

I didn't find any related description about this usage in LLVM.

Any one could give me some explanation or spec link? Thanks in advance.

@implementation MyObject

- (void)foo {
  bar(); // Worked properly. Why no warning like "Implicit declaration of function 'bar' is invalid in C99" occurs here?
}

static void bar(void) {}

@end
0 Answers
Related