-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDers 30 - define.c
More file actions
86 lines (74 loc) · 3.22 KB
/
Copy pathDers 30 - define.c
File metadata and controls
86 lines (74 loc) · 3.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
/* "preprocessor: ön işlemci" "define: tanımlama"
C'de bir kod yazıldığında derleme öncesi ön işlemci (preprocessor) komutları çalıştırılır ve bu komutlara makro adı verilir (#include <math.h> gibi)
tıpkı main fonksiyonunun içinde tanımlanan char,int,float,double değişkenleri (variable) gibi makro direktiflerinden "define" ile sabitler (constant) tanımlanır
genel syntax'ı hashtag define makroadi => #define makroadi biçimindedir
#define PI 3.141592
int main() {
double r,teta; //PI sabit (constant), r ve teta değişken (variable)
printf("Daire diliminin yaricapini ve acisini (derece) giriniz: ");
scanf("%lf%lf",&r,&teta);
double dairedilimi=PI*r*r*teta/360;
printf("Daire diliminin alani: %lf",dairedilimi);
}
typedef ile veri türlerine yaptığımız gibi built-in fonksiyonlara da takma isimler verebiliriz
#define PI 3.141592
#define ekrana_yazdir printf
#define deger_al scanf
int main() {
double yaricap,alan,cevre;
ekrana_yazdir("Cemberin yaricapini giriniz: ");
deger_al("%lf",&yaricap);
alan=PI*yaricap*yaricap;
cevre=2*PI*yaricap;
ekrana_yazdir("Cemberin alani: %.4f\nCemberin cevresi: %.4f",alan,cevre);
}
dahası kendi custom fonksiyonlarımızı da define ile tanımlayabiliriz
#define merhaba_yazdir(x) int i; for(i=1;i<=x;i++) printf("Merhaba\n");
int main() {
int yazdirma_adedi;
printf("Kac defa \"Merhaba\" yazdirilsin?: ");
scanf("%d",&yazdirma_adedi);
merhaba_yazdir(yazdirma_adedi);
}
#define MAK01(id1,id2) id1+id2 //fonksiyonun return'lediği değeri tanımladım
#define MAK02(cp1,cp2) strcpy(cp1,cp2)
#define MAK03(cp1,cp2) strcat(cp1,cp2)
#define MAK04(id1) fonk(id1) //fonksiyonları tanımladım
void fonk(char* string) {
int i;
for(i=0;i<20;i++)
printf("%s",string);
}
int main() {
char cdizi[50];
MAK02(cdizi,"Object");
printf("CMPE %d - %s\ntr", MAK01(MAK01(69,31),60), MAK03(cdizi," Oriented Programming"));
MAK04("ol");
} */
#define nesemizi "havamızı"
#define sebiha "Semra"
#define ekrana_yazdir printf
#define deger_al scanf
typedef int tam_sayi;
typedef double ondalikli_sayi;
int main() {
setlocale(LC_ALL,"Turkish"); //<locale.h> kütüphanesindeki setlocale fonksiyonu sayesinde Türkçe dahil bilumum bütün dillerin kendine has karakterlerini kullanabilirim
ondalikli_sayi x,y;
tam_sayi secim;
ekrana_yazdir("Semra 2 sayı gir de neşemizi bulalım: "); //artık "ç,Ç,ğ,Ğ,ı,İ,ö,Ö,ş,Ş,ü,Ü" harflerini printf içinde kullanabilirim :))
deger_al("%lf%lf",&x,&y);
ekrana_yazdir("\n1-Toplama\n2-Çıkarma\n3-Çarpma\n4-Bölme\n5-Mod alma\n\nSemra yapmak istediğin işlemi seç de neşemizi bulalım: ");
deger_al("%d",&secim);
switch(secim) {
case 1: ekrana_yazdir(sebiha " sonucu gör de " nesemizi " bulalım: %lf",x+y); break;
case 2: ekrana_yazdir(sebiha " sonucu gör de " nesemizi " bulalım: %lf",x-y); break;
case 3: ekrana_yazdir(sebiha " sonucu gör de " nesemizi " bulalım: %lf",x*y); break;
case 4: ekrana_yazdir(sebiha " sonucu gör de " nesemizi " bulalım: %lf",x/y); break;
case 5: ekrana_yazdir(sebiha " sonucu gör de " nesemizi " bulalım: %d",(int)x%(int)y); break;
default: ekrana_yazdir("Aşk olsun " sebiha ", " nesemizi "\b kaçtı");
}
return 0;
}