Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP C C++ C# AWS W3.CSS HOW TO BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR ANGULARJS GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SWIFT SASS VUE GEN AI SCIPY CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING HTML & CSS BASH RUST TOOLS

C Tutorial

C HOME C Intro C Get Started C Syntax C Output C Comments C Variables C Data Types C Type Conversion C Constants C Operators C Booleans C If...Else C Switch C While Loop C For Loop C Break/Continue C Arrays C Strings C User Input C Memory Address C Pointers

C Functions

C Functions C Function Parameters C Pass By Reference C Scope C Function Declaration C Functions Challenge C Math Functions C Inline Functions C Recursion C Function Pointers

C Files

C Create Files C Write To Files C Read Files

C Structures

C Structures C Structs Challenge C Nested Structures C Arrays of Structs C Structs & Pointers C Unions C typedef C Struct Padding

C Enums

C Enums

C Memory

C Memory Management C Allocate Memory C Access Memory C Reallocate Memory C Deallocate Memory C Structs and Memory C Memory Example C Memory Mistakes

C Errors

C Errors C Error Challenge C Debugging C NULL C Error Handling C Input Validation

C Problem Solving

C Problem Solving C Build the Logic C Edge Cases & Errors C Test Cases

C More

C Date C Random Numbers C Macros C Organize Code C Storage Classes C Bitwise Operators C Fixed-width Integers C Command-Line Args

C DSA

C DSA Intro C Searching C Sorting C Stacks C Queues C Linked Lists C Trees C Hash Tables C Big O

C Projects

C Projects

C Cert

C Certificate

C Reference

C Reference C Keywords C <stdio.h> C <stdlib.h> C <string.h> C <math.h> C <ctype.h> C <time.h>

C Examples

C Examples C Real-Life Examples C Exercises C Quiz C Code Challenges C Practice Problems C Compiler C Syllabus C Study Plan C Interview Q&A

C Inline Function


Share

Inline Function

You might sometimes see the inline keyword used in other people's functions. It's not something you need to use often as a beginner, but it's good to know what it means.

An inline function is a small function that asks the compiler to insert its code directly where it is called, instead of jumping to it.

This can make short, frequently used functions a little faster, because it removes the small delay of a normal function call.

Let's compare a regular function with an inline function:

Regular Function

int square(int x) {
  return x * x;
}

Inline Function

static inline int square(int x) {
  return x * x;
}

Both functions work the same way. The difference is that the inline version suggests to the compiler to copy the function's code directly where it is used.

Note: In C, inline functions are usually written as static inline. The static keyword makes the function available only in the current file. Without it, you can get an error if the compiler decides not to inline the function.



Inline Function Example

Here is a simple example that uses an inline function:

Example

#include <stdio.h>

static inline int add(int a, int b) {
  return a + b;
}

int main() {
  printf("%d", add(5, 3));
  return 0;
}

Try it Yourself »

Here, the compiler might replace add(5, 3) with the code 5 + 3 directly - saving the time it would take to call a separate function.


When Not to Use Inline

Inline functions are best for small, simple functions. Avoid using them for:

  • Large functions (they make your program bigger)
  • Recursive functions
  • Functions that are rarely called

Too many inline functions can make your program slower and larger, a problem known as code bloat.


Inline vs Regular Function

Regular Function Inline Function
Code jumps to the function each time it's called Code may be inserted directly where it's called
Slightly slower (small delay) Can be slightly faster
Good for large functions Good for small functions

Modern compilers are good at deciding this on their own. They often inline small regular functions too, even without the inline keyword. That is why you rarely need to use it, and why we will continue to use regular functions in this tutorial.


Summary

  • Inline functions are defined with the inline keyword, usually together with static.
  • They can make small, often-used functions faster.
  • The compiler decides whether to inline a function or not.
  • Mostly used for short, simple functions.



Free account

Track your progress

XP earned 0 Day streak 0 Spaces 0 League —

New

Learn in Adventure Mode W3Schools Adventure App

Coding fundamentals as bite-sized lessons and challenges.

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookies and privacy policy.

Copyright 1999-2026 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.