Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

C structure sorusu

Başlatan mcan, 06 Kasım 2011, 01:24:24

mcan

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;

z

#1
struct x_ {
   int* A;
   char* B;
}XDC;

Tanimlasan A ve B ye de istedigin adresleri atasan olmazmi? (Gerci C++ mis simdi farkettim)
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mcan

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.

mcan

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.

z

#4
struct{
         char a;
         struct{
                 char b0:1; 
                 }Y;
         } Z;

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

Bu isini gormuyormu?

Pardon pointer yapacaktik.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mcan

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
.
.
.   
}