Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: mcan - 06 Kasım 2011, 01:24:24

Başlık: C structure sorusu
Gönderen: mcan - 06 Kasım 2011, 01:24:24
Merhaba structure ile bir yapı kurduğumuzda ; structure elemanlarının adresslerini önceden belirlemek isiyorum,nasıl yapılır?

structure x_ {
   İNT A; // BUNUN ADRESİ 0X1 DE OLSUN
   CHAR B; // BUDA 0X875 DE OLSUN

}XDC;
Başlık: Ynt: C structure sorusu
Gönderen: z - 06 Kasım 2011, 01:28:31
struct x_ {
   int* A;
   char* B;
}XDC;

Tanimlasan A ve B ye de istedigin adresleri atasan olmazmi? (Gerci C++ mis simdi farkettim)
Başlık: Ynt: C structure sorusu
Gönderen: mcan - 06 Kasım 2011, 01:36:31
Alıntı yapılan: bunalmis - 06 Kasım 2011, 01:28:31
structure x_ {
   int* A;
   char* B;
}XDC;

Tanimlasan A ve B ye de istedigin adresleri atasan olmazmi?

Hemen deneyecem,bu aklıma gelmemişti.Pointeri sabit olarak tanımlayabiliyoruz değil mi? Mesela ben A pointirina adresi sabit olarak atasam derleyici extra kod üretecek mi merak ediyorum.Neyse bu yol aklıma gelmedi sağolun hocam.
Başlık: Ynt: C structure sorusu
Gönderen: mcan - 06 Kasım 2011, 01:44:00
Heayda ,structure bit field ler için pointer tanımlayamıyormuyuz?

structure x_ {
   int* A;
   char* B;
   char *c : 4;
}XDC;

Bu şekilde hata veriyor.
Başlık: Ynt: C structure sorusu
Gönderen: z - 06 Kasım 2011, 01:52:59
struct{
         char a;
         struct{
                 char b0:1; 
                 }Y;
         } Z;

int main()
{
     Z.a=1;
     Z.Y.b0=1;
}

Bu isini gormuyormu?

Pardon pointer yapacaktik.

Başlık: Ynt: C structure sorusu
Gönderen: mcan - 06 Kasım 2011, 02:00:56
Aslında ilerde kart ile çalışmalarımızda yardımcı olsun diye şu yapıyı kurmaya çalışıyordum ;
PORTC.pin1.mode = output;
Portc.Pin1.input = 1;

Gibi....

Ancak sorun input,mode,output gibi pin1 e ait olan özelliklerin hepsi ayrı ayrı adreslerde ve ayrı offset li bitlerde.

Şu şekil bişey olsa süper olurdu.

Structure pin_{
   char mode : 2; //bunun adresi GPIOx_CRL adresi olucak
   char output :1;//bunun adresi GPIOx_ODR adresi olucak
.
.
.   
}