EEM-465 Gömülü Sistemler
2022-2023 Güz Dönemi Ders 3
Makro tanımlama
#define PI 3.141
int main(){
double yaricap, alan;
yaricap = 5;
alan = PI * yaricap * yaricap;
}
#define POS (12U)
#define MASK (0x3U << POS)
#define MASK_0 (0x1U << POS)
#define MASK_1 (0x2U << POS)
int main(){
unsigned 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; int 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;
}
Tamsayının işaretçiye dönüşümü
int main(){
int adresteki_veri;
adresteki_veri = *((int*) 0x40023830);
}
#define RCC_ABH1ENR (*((int*) 0x40023830))
int main(){
int adresteki_veri;
adresteki_veri = RCC_ABH1ENR;
}
#define RCC_ABH1ENR (*((int*) 0x40023830))
int main(){
RCC_ABH1ENR = RCC_ABH1ENR | 1<<3;
RCC_ABH1ENR |= 1<<1;
}
Yapılar
#include <string.h>
struct calisan{
char isim[30];
int sicil;
float maas;
};
int main(){
struct calisan calisan1;
calisan1.maas=12500;
calisan1.sicil=152;
strcpy(calisan1.isim, "isim soyisim");
}
Yapı işaretçisi
#include <string.h>
struct calisan{
char isim[30];
int sicil;
float maas;
};
int main(){
struct calisan calisan1, *p;
calisan1.maas=12500;
calisan1.sicil=152;
strcpy(calisan1.isim, "isim soyisim");
p=&calisan1;
(*p).maas = 15000;
(*p).sicil =155;
strcpy((*p).isim, "isim1 soyisim1");
p->maas = 16000;
p->sicil =160;
strcpy(p->isim, "isim2 soyisim2");
}
Tür tanımlama
typedef unsigned char BOOL;
int main(){
BOOL x;
x=1;
x=0;
}
Yapı türü
#include <string.h>
typedef unsigned char BOOL;
typedef struct {
char isim[30];
int sicil;
float maas;
} calisan;
int main(){
calisan calisan1, *p;
calisan1.maas=12500;
calisan1.sicil=152;
strcpy(calisan1.isim, "isim soyisim");
p=&calisan1;
//yapı işaretçisi kullanım şekli 1
(*p).maas = 15000;
(*p).sicil =155;
strcpy((*p).isim, "isim1 soyisim1");
//yapı işaretçisi kullanım şekli 2
p->maas = 16000;
p->sicil =160;
strcpy(p->isim, "isim2 soyisim2");
}
#include <string.h>
#define RCC_ABH1ENR (*((int*) 0x40023830))
typedef struct{
int a;
int b;
int c;
} X_type;
int main(){
X_type *p;
p = (X_type*)0x40020C00;
RCC_ABH1ENR |= 1<<3;
p->a |= 1<<3;
p->c |=1<<10;
}