«struct» etiketlenmiş sorular

Sözdizimi C'ye (C ++, C #, Swift, Go, Rust, vb.) Benzer veya türetilmiş çeşitli programlama dillerindeki bir anahtar sözcük. Sözdizimi olarak bir "yapı" kullanımını içeren soruları etiketlemek için belirli bir programlama dili etiketi kullanın ve anlambilim dile bağlı olabilir. Anahtar kelime, diğer veri türlerinden oluşan bir veri türünü tanımlar veya bildirir. Bir yapının her üyesi kendi bellek alanına sahiptir (üyeleri tek bir bellek alanını paylaşan bir “sendika” nın aksine).


16
C yapı üyesi için varsayılan değer
Bazı yapı üyeleri için varsayılan değerler ayarlamak mümkün müdür? Aşağıdakileri denedim ama sözdizimi hatasına neden oluyor: typedef struct { int flag = 3; } MyStruct; Hatalar: $ gcc -o testIt test.c test.c:7: error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘=’ token test.c: In function ‘main’: test.c:17: error: ‘struct …
84 c  struct 

14
C # 'da bir yapı bir bayt dizisine nasıl dönüştürülür?
C # 'da bir yapıyı bayt dizisine nasıl dönüştürebilirim? Şöyle bir yapı tanımladım: public struct CIFSPacket { public uint protocolIdentifier; //The value must be "0xFF+'SMB'". public byte command; public byte errorClass; public byte reserved; public ushort error; public byte flags; //Here there are 14 bytes of data which is used …
83 c#  struct 


6
C ++ yapılarını başlatmanın doğru yolu
Kodumuz bir POD (Düz Eski Veri Yapısı) yapısı içerir (başlangıçta başlatılması gereken diğer yapıları ve POD değişkenlerini içeren temel bir c ++ yapısıdır.) Ben kadarıyla birini Tabanlı okumak , bu gibi görünüyor: myStruct = (MyStruct*)calloc(1, sizeof(MyStruct)); aşağıdaki gibi tüm değerleri sıfırlamalıdır: myStruct = new MyStruct(); Bununla birlikte, yapı ikinci şekilde …

4
Yapılar hakkında özel olan nedir?
C'de bir işlevden bir dizi döndüremeyeceğimizi, bir diziye göstericiyi döndüremeyeceğimizi biliyorum. Ancak structs, diziler içerse bile, onları fonksiyonlar tarafından döndürülebilir kılan özel şeyin ne olduğunu bilmek istiyorum . Neden structsarma aşağıdaki program geçerli kılan? #include <stdio.h> struct data { char buf[256]; }; struct data Foo(const char *buf); int main(void) { …

4
Yapı dizisinin sonunda '{}' boş parantezlere ne gerek var?
Linux çekirdeğinde bazı c kodlarına çarptım: static struct ctl_table ip_ct_sysctl_table[] = { { .procname = "ip_conntrack_max", .maxlen = sizeof(int), .mode = 0644, .proc_handler = proc_dointvec, }, // ... { .procname = "ip_conntrack_log_invalid", .maxlen = sizeof(unsigned int), .mode = 0644, .proc_handler = proc_dointvec_minmax, .extra1 = &log_invalid_proto_min, .extra2 = &log_invalid_proto_max, }, { …

1
C ile çakışan nesnelerin semantiği nedir?
Aşağıdaki yapıyı düşünün: struct s { int a, b; }; Tipik olarak 1 , bu yapı 8 ebatına ve 4 hizalamasına sahip olacaktır. Ya iki struct snesne yaratırsak (daha kesin olarak, tahsis edilen depoya bu tür iki nesneyi yazarız), ikinci nesne birinciyle çakışırsa? char *storage = malloc(3 * sizeof(struct s)); …

2
[[no_unique_address]] ve aynı türde iki üye değeri
Ben etrafında oynuyorum [[no_unique_address]]içinde c++20. Cppreference örneğinde boş bir tür Emptyve tür varZ struct Empty {}; // empty class struct Z { char c; [[no_unique_address]] Empty e1, e2; }; Görünüşe göre, boyutu Zen azından 2türleri e1ve e2aynı olduğu için olmalıdır. Ancak, gerçekten Zboyutu ile istiyorum 1. Bu bana neyi Paketleme …

6
C ++ 'daki genel yapıları nasıl karşılaştırabilirim?
Yapıları genel bir şekilde karşılaştırmak istiyorum ve böyle bir şey yaptım (asıl kaynağı paylaşamıyorum, bu yüzden gerekirse daha fazla ayrıntı isteyin): template<typename Data> bool structCmp(Data data1, Data data2) { void* dataStart1 = (std::uint8_t*)&data1; void* dataStart2 = (std::uint8_t*)&data2; return memcmp(dataStart1, dataStart2, sizeof(Data)) == 0; } İki yapı örneği aynı üyeye sahip …
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.