Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: osman_ - 04 Temmuz 2019, 10:45:50

Başlık: C'de Typedef ve Struct Tanımlamaları Hakkında Bir Soru
Gönderen: osman_ - 04 Temmuz 2019, 10:45:50
struct myStruct{
    int one;
    int two;
};

typedef struct{
    int one;
    int two;
}myStruct;

Bu iki tanım arasında ne tür bir fark oluyor? MCU kütüphanelerinde genelde typedef ile oluşturulan struct yapılarını gördüm. Neden typedef tercih ediliyor?
Başlık: Ynt: C'de Typedef ve Struct Tanımlamaları Hakkında Bir Soru
Gönderen: fide - 04 Temmuz 2019, 21:22:18
Ikinci tanım yapıldıktan sonra tanım int, char gibi bir veri tipi haline gelir. Bu sayedemyStruct arr1;
myStruct arr2;
tanımlayabilirsiniz.


Aşağıdaki linkte bu konuyla ilgili tanımlar var.
https://www.picproje.org/index.php?topic=71706.0
Başlık: Ynt: C'de Typedef ve Struct Tanımlamaları Hakkında Bir Soru
Gönderen: kantirici - 04 Temmuz 2019, 21:26:37
typedef ile yeni tür tanımlanıyor, int char gibi.

typedef ile tanımlarsan "myStruct i;" ile myStruct türünden bir değişken oluşturursun.
Diğerinde ise "struct myStruct i;" şeklinde tanımlaman gerekir.
typedef ile tanımlamak hem daha az yazım yapmana hemde daha anlaşılır kod yazmayı sağlar.

Bunun haricinde bir fark yok. Ayrıca typedef sadece struct tanımlarken değil, yeni bir tür tanımlamak için kullanılır.

Mesela sen ahmet adında 8 bitlik bir değişken türü tanımlamak istersen "typedef uint8_t ahmet;" tanımı ile "ahmet i;" şeklinde değişken tanımı yapabilirsin.