CodeBlanks Logo Icon CodeBlanks

İnline

  • C kursu
  • İleri seviye
  • Ders 76/83
  • 5 dk

inline anahtar kelimesi ve makro farkını öğrenirsin.

İnline

inline anahtar kelimesi derleyiciye işlev çağrısını gövdeyle değiştirmeyi önerir. Çağrı yükü (call overhead) ortadan kalkar; küçük işlevlerde performans kazandırır.

Örnek: inline int square_inline(int x) { return x * x; }. Makro (macro) benzer bir etki yapar: #define SQUARE(x) ((x) * (x)). Aradaki fark: inline tür güvenliği sunar ve bağımsız değişkeni bir kez değerlendirir; makro ise metin değişimi yapar ve yan etkileri ikiye katlar. Modern C'de inline tercih edilir.

Kare örneği

5 sayısının karesi 25'tir. square_inline(5) ve SQUARE(5) her ikisi de 25 döner; fark derleme zamanında yatar.

İşlev tanımı: inline int square_inline(int x) { return x * x; }. Makro tanımı: #define SQUARE(x) ((x) * (x)). Makroda her parantez gereklidir; yoksa SQUARE(a+b) yanlış sonuç verir. Main içinde printf("inline: %d\n", square_inline(5)); ve printf("macro: %d\n", SQUARE(5)); yazarsın. Çıktı her ikisinde de 25'tir.

Uygulama İnline ve makro kare

inline int square_inline(int x) yaz: return x * x;. #define SQUARE(x) ((x) * (x)) makrosunu tanımla. main'de printf("inline: %d\n", square_inline(5)); ve printf("macro: %d\n", SQUARE(5));.

Başlangıç kodu

main.c
#include <stdio.h>

// inline int square_inline(int x) yaz: x*x döndür
// SQUARE makrosunu tanımla: ((x) * (x))
// main: 5'in karesini her iki yolla da yazdır

int main(void) {
    return 0;
}

Örnek çözüm

main.c
#include <stdio.h>

inline int square_inline(int x) { return x * x; }
#define SQUARE(x) ((x) * (x))

int main(void) {
    printf("inline: %d\n", square_inline(5));
    printf("macro: %d\n", SQUARE(5));
    return 0;
}

Beklenen çıktı

inline: 25
macro: 25

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Makro ile inline arasındaki temel fark nedir?

  • Makro daha yavaştır
  • Inline tür güvenliği vermez
  • İkisi aynıdır
  • Makro yan etkiyi ikiye katlar Doğru cevap

Açıklama: Makro metin değişimi yaptığı için yan etkileri iki kez değerlendirir.

2 İnline ve makro kavramlarını eşle

Kavram Anlamı
inline Tür güvenli
#define Metin değişimi
çağrı yükü inline ile kalkar
yan etki Makroda ikiye katlanır

3 square_inline imzası

Soru
inline int square_inline(____) { return x * x; }
Cevap
inline int square_inline(int x) { return x * x; }

Açıklama: int x parametresi kare alacak değeri taşır.

İleri seviye bölümündeki tüm dersler