Dersler

View on GitHub

Makro tanımlama

#define PI 3.14
int main(){

    double yaricap=2.0, alan;
	alan=PI * yaricap * yaricap;  

}

Bir değişkenin n.bitten itibaren 2 bitlik kısmında işlem yapacağımızı var sayalım. Bu işlemleri aşağıdaki makrolar ile yapabiliriz.

#define POS (12U)
#define MASK (0x3U<<POS)
#define MASK_0 (0x1U<<POS)
#define MASK_1 (0x2U<<POS)

int main(){
	
	int a= 0x12AF04BA;
	a = a | MASK;
	a= 0x12AF04BA;
	a= a | MASK_0;
	a= 0x12AF04BA;
	a= a | MASK_1;


}

İşaretçiler

int main(){
    
    int a=10, b=20;
	int *p;
	
	p=&a;
	*p = *p + 10;
	
	p=&b;
	*p = *p + 10;
    
    
}

Tür dönüşümü

int main(){
    
    double a=10.3;
    double tam, ondalik;
    
    tam = (int)a;
    ondalik = a-tam;
    
}

Sayısal bir değerin işaretçi türüne dönüşümü:

int main(){
    
    int adres_verisi;
    adres_verisi = *((int*)0x40020400);
        
}
int main(){
		(*(int *)0x40023830) = (*(int *)0x40023830) | (1<<3);
}

Tür dönüşümü, işaretçi ve makronun birlikte kullanılması:

#define GPIOB_MODER (*((int*)0x40020400))

int main(){
    
    int adres_verisi;    
    adres_verisi = GPIOB_MODER;
        
}

Tür tanımlama

typedef unsigned char BOOL;

int main(){
    
    BOOL x;
    x=1;
    x=0;
        
}

Yapılar

#include <string.h>

struct calisan{
	char isim[50];
	int sicil;
	float maas;
};
int main(){
	struct calisan calisan1;
	//calisan1.isim="isim soyisim";
	strcpy(calisan1.isim, "isim soyisim");
	calisan1.sicil=1001;
	calisan1.maas=6000;
}
#include <string.h>

struct calisan{
	char isim[50];
	int sicil;
	float maas;
};

int main(){
	struct calisan calisan1;
	struct calisan *p;
	//calisan1.isim="isim soyisim";
	p=&calisan1;
	strcpy((*p).isim,"isim soyisim");
	(*p).sicil=1001;
	(*p).maas=6000;
	
	strcpy(p->isim,"isim soyisim");
	p->maas=7000;
	p->sicil=1002;
	
}
#include <string.h>

typedef struct {
    char isim[50];
    int sicil;
    float maas;
}calisan;

int main(){

    calisan calisan1, *p;
    
    strcpy(calisan1.isim, "isim soyisim");
    calisan1.maas=6571.7;
    calisan1.sicil=1254;
    
    p=&calisan1;

    (*p).maas=7500.1;
    (*p).sicil=1255;

    //veya işaretçi için ok operatörü kullanılabilir.
    
    p->maas=7900.1;
    p->sicil=1300;
    
}