, inline ( Microsoft __inline C - MSVC C99) , . - , - .
, inline, , . , , .
, inline, , ( , ). , ( C), :
static, ( , static inline).- ++ ( , )
- , . , , , . , - , .
, .c, , ( , .c-, , , ). , , , . , , ( ), , ( ):
common.h: //common.h #ifndef COMMON_H #define COMMON_H
#ifdef RELEASE
#define USE_INLINE
#define INLINE __inline
#else
#define INLINE
#endif
INLINE void foo(void);
#ifdef USE_INLINE
#include "foo.c"
#endif
#endif
foo():
#ifndef FOO_C
#define FOO_C
#include <stdio.h>
#include "common.h"
INLINE void foo()
{
printf("foo\n");
}
#endif
:
#include<stdio.h>
#include "common.h"
int main()
{
foo();
return 0;
}
, :
cl /DRELEASE main.c foo.c
foo() inline ( __inline ).
-:
cl test.c foo.c
foo().
.
, , , , inline static .
, , , - inline, , , , . , .
, . , inline / ?