Skip to main content

Macros Vs Functions

Macros Vs Functions


Macros


It contains few lines of code
A macro is preprocessed
A macro is expanded in the  code
The program size increases
Execution of macros is  faster since code is replaced
No type checking is done for macros
Usually used for small code  which appear many times

Functions

It contains several lines of code
A function is compiled
Function code is not inserted in  the code
The program size does not  increase
Functions execute slower
Strict type checking is done for  functions.
Usually used for large code that  needs to be executed many times.

Conditional Compilation Directives


These directives allow specific parts of the program to be included or  discarded based on certain condition. It causes the preprocessor to  conditionally suppress the compilation of portions of source code. 

#if


Syntax: #if constant-expression 
It checks whether the constant expression is true(non-zero). 

#ifdef 


Syntax: #ifdef identifier 
It checks whether the identifier is currently defined using #define  directive. 

 #ifndef 

 Syntax: #ifndef identifier 
 It checks if the identifier is not currently defined.

#else 

Syntax: #else 
It is used with #if, #ifdef, #ifndef to delimit alternative source text  to be compiled if the condition is false. It is optional. 

#elif  

Syntax: #elif constant-expression 
It is used with #if, #ifdef, #ifndef or another #elif to indicate  alternative code if the condition is false. It is optional. It must be  followed by a condition.

#endif 

Syntax : #endif newline 
This directive ends the scope of the #if, #ifdef, #ifndef, #else, #elif  directive.

Example
: Check if macro NUM has an even value & display appropriate message.

#if (NUM%2==0) 
printf( “NUM is even”); 
#endif 

Check if macro NUM has an even or odd value & display appropriate  message.

#if (NUM%2==0) 
printf( “NUM is even”); 
#else 
printf( “NUM is odd”); 
#endif

Check if macro NUM has 0, positive or negative value and display  appropriate message.

#if (NUM==0) 
printf( “\n Number is zero”); 
#elif(NUM > 0) 
printf( “\n Number is positive”); 
#else  
printf( “\n Number is negative”); 
#endif 

If macro NUM is defined, then define macro MAX having value 20 
#ifdef NUM 
#define MAX 20 
#endif

If macro NUM is not defined, then define macro NUM having value 20 
#ifndef NUM 
#define NUM 20 
#endif 

If macro NUM is defined, then redefine it with value 75. If it is not  defined, define it with value 100. 
#ifdef NUM 
#undef NUM 
#define NUM 75 
#else 
#define NUM 100 
#endif

Predifined macros


LINE


Integer value representing the current line in the source  code file

FILE


A string literal containing a C string constant which is  the name of the source file being compiled


DATE


A string literal in the form “mmm dd yyyy” containing  the date on which the preprocessor is being run

TIME


A string literal in the form “hh:mm:ss” containing the  time at which the compilation process began

Comments

Trending⚡

Happy birthday Hardik Pandya | In C programming

  Happy birthday Hardik Pandya . Now you are  28 years old. Great achievement you have. Let's we want to talk more about Hardik pandya. He is great cricketer. Pandya is awesome. In this Blog Post we are going to wish pandya " Happy birthday using C program". Let's tune with us till end. Now we have to wish pandya, so we are going to use printf () function printing message to pandya as " Happy birthday Hardik pandya Now you are 28 years old". Hardik pandya was born on 11 October in 1993. Now we are going to declare a variable called as current_age = 2021 - 1993. It calculate current age Of Hardik pandya. See the "Happy birthday pandya" using c programming. If you liked this Blog Post then don't forget to share with your computer science learning friends. Once again " Happy birthday Hardik Pandya sir". Read also Happy Rakshabandhan wish using C program Friendship day 2021 greetings in C

Understanding link.click() in JavaScript

Hey! Today i am going to share with you how to use link.click() function in javascript As a JavaScript developer, you may come across the need to programmatically click a link on a web page. The link.click() method is a commonly used way to do this, and it is important to understand how it works and when to use it. What is link.click()? link.click() is a method that can be used to simulate a click on a link element in JavaScript. It is typically used when you want to trigger a link click event programmatically, rather than requiring the user to physically click the link. How to use link.click() Using link.click() is relatively straightforward. First, you need to select the link element you want to click using a DOM selector such as getElementById() or querySelector(). Then, you can call the click() method on the link element to simulate a click. Here is an example: // select the link element const myLink = document.getElementById('my-link'); // simulate a cl...

Best course Recommendation of IT field in 2023

Recommend me best course 🎉50% Discount on registration today itself 🎉! Join Course Now In today's fast-paced digital age, staying updated with the latest technology trends is crucial for professionals looking to advance in their careers. With technology rapidly evolving, it is important to continuously upskill and gain new knowledge to stay relevant in the job market. In 2023, there are several courses in technology that are gaining popularity and are highly recommended for professionals seeking to enhance their skills in data science, analytics, and digital marketing. Data Science: Data science is an interdisciplinary field that combines statistical analysis, machine learning, and computer science to extract insights and knowledge from data. With the increasing amount of data available, data scientists are in high demand across various industries. The best courses in data science for 2023 are th...

Define a macro EQUALSTR which accepts two strings and compare equality of both string

Define a macro EQUALSTR which accepts two strings and compare equality of both string #include<stdio.h>  #include<string.h>  #define EQUALSTR(str1,str2) strcmp(str1,str2)?0:1  void main()  {  char str1[10],str2[10];  printf("\n Enter the two strings: ");  gets(str1);  gets(str2);  if(EQUALSTR(str1,str2))  printf("\n Strings are equal");  else  printf("\n Strings are not equal");  } Also Read C program to find largest of two numbers using Structure Predefined Macro program Macros vs Functions Preprocessor Syntax Task Performed by Preprocessor

check number is prime or odd or even using c program

Here is the c program to check if the user entered number is prime ,even and odd. These few lines of code solve three problems. In the above program we used integer type num variable for storing user entered numbers. Then we used the IF condition statement. That's all. IF condition for even number In the First IF statement we have a logic. If the number is divided by two then the reminder should be 0 then the number is an even number else not an even number. That simple logic is implemented in the first if statement. IF condition for odd number In the second IF statement we Implemented odd number logic. We identify odd numbers just by making little change in even number logic. If the number is divided by two then the reminder should not be a zero. Then the number is odd. That's simple logic used to identify whether a number is odd or not an odd number. IF condition for prime number In the third IF condition we implemented the logic of the prime number. In this IF ...

How to write programs in Bhai language

Bhai Language Bhai language is fun Programming language , with this language you can makes jokes in hindi. Bhai language written in typescript. It's very funny , easy and amazing language. Keywords of this language written in Hindi . Starting and ending of the program Start program with keyword " hi bhai " and end with " bye bhai ". It's compulsory to add this keyword before starting and end on the program. You write your programming logic inside this hi bhai and bye bhai . How to declare variables in Bhai language We use " bhai ye hai variable_name" keyword for declaring variables. In javascript we use var keyword for declaring variables but here you have to use " bhai ye hai " keyword. If you are declaring string then use " " double quotes. You can use Boolean variable like sahi and galat for true and false . How to print output in Bhai language You have to use " bol bhai " keyword for ...