#define directive as Macros Expressions – Computer Sir Ki Class


Lost your password?

Don't have an account ?
Register (It's FREE) ×


Code Learning #CPP#4585    siteicon   siteicon  

#define directive as Macros Expressions

Understanding the purpose of #define pre-processor directive to be used as macros or use of replacement action for expressions

Learning Objectives

  • Understanding the use of #define as a macro where a function like symbol structure form can be replaced with an expression with suitable use of function parameters.

Source Code

TC++ #4585


Source Code

Run Output


Code Understanding

#define velocity(u,a,t) u+a*t
Here we write #define to define a function like syntax with a following expression where parameters passed to function have been used in the given expression.

int main(){
int v=velocity(5,2,3);
The defined macro has been used here with fixed values (we can pass variable names also if desired). Now this macro will return output as per expression given in the define macro.

Output is printed

return 0;}


  • #define macros can give immense possibility of dynamic compilation. This also helps in version control of C++ programs where not only expression values are easily definable but even expressions are definable.


Common Errors

  • One must take care that expressions given as macro definitions must be workable. Compiler may not be able to check expression mistakes the way it checks for data types etc in case of regular expressions in the main code.

Suggested Filename(s): pp-mac.cpp, define-macros.cpp


sunmitra| Created: 2-Sep-2018 | Updated: 2-Sep-2018|

Introductory Sessions Beginning to Program Tokens Keyword and Identifiers Data Types Variables and Constants Operators Simple User Input Building Expressions and Formulas Simple Real World Problems Simple If and If Else Multiple-Nested-Ladder of If Else Switch case selection Simple Loops Tricks in Loops - break continue scope Loop Applications - Handling numerals Series printing loops Nested Loops Pattern printing loops Number Varieties and Crunches String Handling (Null Terminated) Strings - string class type Functions (Built-in) Functions - user defined Functions Reference Passing/Returning Arrays Concepts and 1-D Arrays Array Data Management Two dimensional arrays and Matrices Structures Basics Structures passing/returning 2D Array Memory Addressing Display Using IO Manipulation Display Using C Formatting Tricks User Defined Data Types Enumerated Types Preprocessor Directives And Macros Exception Handling Programming Paradigms and OOPs Advantages Abstraction and Encapsulation Polymorphism Inheritance Function Overloading Concepts Function Overloading Varieties Function Overloading Special Cases Defining Classes Creating and Using Class Objects Class Members Accessibility Class Function Types Inline Functions Constant Functions Nesting of Functions Class Members Scope Resolution Static Members in a Class Array of Objects Constructor Concepts Default Constructor Parameterized Constructor Copy Constructor Constructor Overloading Destructors Inheritance Fundamentals Public Derivations Private and Protected Derivations Multiple Inheritance Multi-Level Inheritance Class Nesting Data File Concepts Handling Text Files Handling Binary Files Pointer Concepts Pointer and Arrays Pointers and Functions Object Pointers This Pointer Linked Lists Stacks Queues