Her Yönüyle C
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Her Yönüyle C

Hepsi Burada
 
AnasayfaAnasayfa  PortalliPortalli  GaleriGaleri  AramaArama  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 C MAKROLARI (BOLUM 3)

Aşağa gitmek 
YazarMesaj
Admin
Admin
Admin


Erkek
Mesaj Sayısı : 804
Yaş : 35
Location : KoCaElİ
Kayıt tarihi : 29/10/07

Character sheet
Field:
C MAKROLARI (BOLUM 3) Left_bar_bleue100/100C MAKROLARI (BOLUM 3) Empty_bar_bleue  (100/100)

C MAKROLARI (BOLUM 3) Empty
MesajKonu: C MAKROLARI (BOLUM 3)   C MAKROLARI (BOLUM 3) Icon_minitimePtsi Kas. 12, 2007 2:19 am

#pragmaBu önişlemci deyimi bir komut beliticisi ile birliktikte kullanılır. Genel kullanım biçimi:
#pragma komut_belirticisişeklindedir. Bu deyim, aldığı argümana bağlı olarak derleyiciden derleyiciye değişebilen işlevlere sahiptir. Ayrıca, her derleyici #pragma deyimine sahip değildir. #pragma deyiminin ayrıntılı kullanımı için çalıştığınız derleyicinin başvuru kitabına bakmalısınız. Burada sadece 8086 sistemlerde çalışabilen #pragma inline komutu anlatılacaktır[2], [4].
#pragma inline derleyiciye program içinde sembolik makina dili (Assembler) kodlarının bulunduğunu bildirir. Bu kodlar asm anahtar sözcüğüyle yapılır. Örneğin:

Program 20.8: C kodu içine gömülmüş bir asm kodu




[color=gray] 1:
/* 20prg08.c: C kodu içine gömülmüş bir asm kodu */
2:
3: #include <stdio>
4:
5: #pragma inline
6:
7: void pos(int satir,int sutun)
8: {
9: asm mov ah,2
10: asm mov bh,0
11: asm mov dh,satir
12: asm mov dl,sutun
13: asm int 10h
14: }
15:
16: void main(void)
17: {
18: pos(20,10);
19: getchar();
20: pos(0,0);
21: getchar();
[color:bbeb=gray:bbeb]22: }
Program 20.8, imleci ekranın istenilen (x,y) koordinatına taşımak için kullanılabilir. 9-13. satırlardaki ifadeleri tek bir asm bloğu altında toplamak mümkündür: asm{
mov ah,2
mov bh,0
mov dh,satir
mov dl,sutun
int 10h
}
#errorÖnişlemci bu deyimle karşılaşınca yanındaki mesajı ekrana yazar ve derleme işlemine son verir. Mesela, yazmış olduğunuz program 32 bitlik bir işletim sistemi (UNIX veya Linux gibi) için tasarlanmışsa ve program 16 bitlik işletim sisteminde (MSDOS gibi) derlenecekse kullanıcıya buna dair bir uyarı mesajı vermek uygun olur[2-4]. Örneğin:
#if (sizeof(int)==2)
#error Bu program 16 bitlik işletim sisteminde derlenemez !...
#endif

Eğer DOS altında çalışıyorsanız önişlemci derleme işlemine: Bu program 16 bitlik işletim sisteminde derlenemez !...mesajı ile son verir. Mesajın tırnak içinde yazılmadığına dikkat ediniz.

Önceden Tanımlanmış Sembolik SabitlerBazı sembolik sabitler derleyici tarafından önceden tanımlanmıştır. Bu kısımda, bazı standart sembolik sabitler incelenektir[2-4].

Tablo 20.1: Önceden tanımlı bazı sembolik sabitler



Sabit ismi
Açıklama

__LINE__
Önişlemci bu sabit yerine kaynak koddaki o anda bulunan satır numarasını yerleştirir.

__FILE__
Kaynak dosyanın ismin tutar.

__DATE__
Önişlemci bu sabit yerine derlemenin yapıldığı zaman tarihi (ay gün yıl formatında) yazar.

__TIME__
Önişlemci bu sabit yerine derlemenin yapıldığı zaman zamanı (sa:dak:sn gün yıl formatında) yazar.

__STDC__
C dilinde kullanılan kimi anahtar sözcükler standart değildir. Derleyici eğer yalnızca standart C'nin anahtar sözcüklerini destekliyorsa bu sabit tanımlı varsayılır.

M_PI
Pi sayısını turar (M_PI=3.14159265358979323846). Ayrıca bkz: math.h

M_E
e sayısını turar (M_E=2.7182818284590452354). Ayrıca bkz: math.hAşağıdaki örnekleri inceleyiniz:
Program 20.9: C dilindeki bazı tanımlı sabitler




[color=gray] 1:
/* 20prg10.c: Sembolik sabitler */
2:
3: #include <stdio>
4:
5: main()
6: {
7: printf("Satir No : %d\n",__LINE__);
8: printf("Dosya adi : %s\n",__FILE__);
9: printf("Tarih : %s\n",__DATE__);
10: printf("Saat : %s\n",__TIME__);
[color:bbeb=gray:bbeb]11: }

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 20prg09.c
C:\TC> 20prg09
$ gcc 20prg09.c -o 20prg09
$ ./20prg09


ÇIKTI




Satir No : 7
Dos ya adi : 20prg10.c
Tarih : Jul 11 2004
Saat : 17:52:30

Program 20.10: C dilindeki bazı tanımlı sabitler




[color=gray] 1:
/* 20prg10.c: C dilindeki bazı tanımlı sabitler */
2:
3: #include <stdio>
4: #include <math> /* pi ve e sayilari icin !*/
5:
6: #ifdef __STDC__
7: #define MESAJ "Bu derleyici ANSI C "
8: #else
9: #define MESAJ "Bu derleyici ANCI C degil "
10: #endif
11:
12: main()
13: {
14: puts(MESAJ);
15: printf("Pi sayisi = %f\n",M_PI);
16: printf("e sayisi = %f\n",M_E);
[color:bbeb=gray:bbeb]17: }

DERLEME ve ÇALIŞTIRMA



Turbo C (MS DOS)
GCC (Linux)

C:\TC> tcc 20prg10.c
C:\TC> 20prg10
$ gcc 20prg10.c -o 20prg10
$ ./20prg10
ÇIKTI



MS DOS (Turbo C)
Linux

Bu derleyici ANCI C degil
Pi sayisi = 3.141593
e sayisi = 2.718282

Bu derleyici ANSI C
Pi sayisi = 3.141593
e sayisi = 2.718282
Sayfa başına dön Aşağa gitmek
https://cprogramlama.yetkin-forum.com
 
C MAKROLARI (BOLUM 3)
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» C MAKROLARI (BOLUM 2)
» C MAKROLARI

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Her Yönüyle C :: C Programlama :: C Konu Anlatımları-
Buraya geçin: