# Defined functions

**URL:** <https://forums.freertos.org/t/defined-functions/3850>\
**Category:** Kernel\
**Created:** [June 27, 2008, 10:24am UTC](https://forums.freertos.org/t/defined-functions/3850 "2008-06-27T10:24:34Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [June 27, 2008, 10:24am UTC](https://forums.freertos.org/t/defined-functions/3850/1 "2008-06-27T10:24:34Z")

</div>

**[junavas](https://sourceforge.net/u/junavas/)** wrote on [Friday, June 27, 2008](https://sourceforge.net/p/freertos/discussion/382005/thread/a9348a99/#4e36):

Hi

I am new to FreeRTOS, I am studying it by curiosity and eventually to port it to another platform. I was reading the code and found that there is a lot of “functions” that are defined, not declared. I suppose that it was made to reduce the function calls and the memory usage and generated instructios that are involved with. But this can also produce a bigger memory footprint… I didn’t make an exhaustive analysis function per function (if it is called one time in OS life cycle, it is perfect), I wonder if some of you did it ?

GCC compiler (and others) can optimize source code inlining some functions, and you can even suggest GCC to do it (inline keyword); the advantage is that GCC analyse all the application, FreeRTOS developers cannot predict that 😉 , but obviously there would compatibility issues in common files (like tasks.c). Maybe one could use a defined keyword ? like

#define INLINE inline

in GCC ?

Regards,

---

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [June 27, 2008, 10:38am UTC](https://forums.freertos.org/t/defined-functions/3850/2 "2008-06-27T10:38:40Z")

</div>

**[davedoors](https://sourceforge.net/u/davedoors/)** wrote on [Friday, June 27, 2008](https://sourceforge.net/p/freertos/discussion/382005/thread/a9348a99/#4e36/170a):

There is always going to be a trade off. Which macros are you concerned about in particular?

The last FreeRTOS release actually removed all use of inline because it is a pain for some compilers (its not actually C).

---

<div class="post-metadata">

**Author:** ![system](https://d2v6vdsk2p900z.cloudfront.net/original/1X/7fc8fdb729c645aab5b20282bbe34e57cb407be6.jpeg) [@system](https://forums.freertos.org/u/system)\
**Post date:** [June 27, 2008, 2:15pm UTC](https://forums.freertos.org/t/defined-functions/3850/3 "2008-06-27T14:15:48Z")

</div>

**[junavas](https://sourceforge.net/u/junavas/)** wrote on [Friday, June 27, 2008](https://sourceforge.net/p/freertos/discussion/382005/thread/a9348a99/#4e36/8c81):

I am not really concerned about any macro in particular, I am just wondering if anyone made some experments about converting these macros into real functions, and see how this modifies performance and memory footprint. Who knows, we couldd see some surprises !

"inline" is included in C99 standard but not in ANSI C.
