Lesson 7 - Macros
A macro is a snippet of code that is assigned an identification string. If anywhere in the code the preprocessor encounters this string, it replaces it with the content of the given macro - i.e. macro expansion.
(author's note: the preprocessor starts before the compilation itself and replaces all macros in the source file with their contents).
In general, macros can be divided into two groups. The first group are macros without parentheses. These types of macros are used to define constants, characters, or strings. Macros with parentheses are usually used where we want to replace the macro with a function or a block of one or more lines of code, which can, for example, calculate the maximum value of two elements. At the same time, as with the classic function, it's possible to insert one or more parameters in parentheses.
Because the macro name is directly replaced by a block of code at the point of use, it doesn't load the CPU. Conversely, when calling a function, it's necessary to switch the context of the currently processed function and at the same time create a data structure called frame on the stack. These are operations that cost a certain amount of computational time.
(author's note: switching the context can mean, for example, backing up the registers available on a given microcontroller or processor).
Rules for using macros
...End of the preview...
You've come here and that's great! We believe that the first lessons showed you something new and useful
Do you want to continue the course? Go to the premium section.
- Unlimited and permanent access to individual lessons.
- High quality IT knowledge.
- Skills to help you get your dream and well-paid job.
Requested article covers this content:
In this article, you will learn how to use macros. They have endless possibilities of use and are the main elements in the creation of embedded systems.
You gain points by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.