«c» etiketlenmiş sorular

C, sistem programlama (OS ve gömülü), kütüphaneler, oyunlar ve çapraz platform için kullanılan genel amaçlı bir programlama dilidir. Bu etiket, ISO 9899 standardında tanımlandığı gibi C dili ile ilgili genel sorularla kullanılmalıdır (aksi belirtilmedikçe en son sürüm 9899: 2018 - c89, c99, c11 vb. İle sürüme özgü istekleri de etiketleyin). C, C ++ 'dan farklıdır ve rasyonel bir nedenden yoksun C ++ etiketi ile birleştirilmemelidir.

5
Snprintf () HER ZAMAN boş sonlandırıyor mu?
Snprintf her zaman hedef tamponu null mu sonlandırıyor? Başka bir deyişle, bu yeterli mi: char dst[10]; snprintf(dst, sizeof (dst), "blah %s", somestr); yoksa eğer yeterince uzunsa, böyle yapmak zorunda mısın? char dst[10]; somestr[sizeof (dst) - 1] = '\0'; snprintf(dst, sizeof (dst) - 1, "blah %s", somestr); Hem standardın ne söylediği …
85 c  posix  libc 

10
Bir tamsayıdaki 1 bitlerin bitişik bir bölgede olmasını test etmenin zarif ve hızlı bir yolu var mı?
Bit değeri 1 olan konumların (32 bitlik bir tam sayı için 0'dan 31'e kadar) bitişik bir bölge oluşturup oluşturmadığını test etmem gerekiyor. Örneğin: 00111111000000000000000000000000 is contiguous 00111111000000000000000011000000 is not contiguous Bu testin, yani bazı işlevlerin has_contiguous_one_bits(int)taşınabilir olmasını istiyorum. Açık bir yol, ilk set biti, ardından ilk set olmayan biti bulmak …



8
GDB neden satırlar arasında tahmin edilemeyecek şekilde atlar ve değişkenleri "<optimize edilmiş değer>" olarak yazdırır?
Herhangi biri gdb'nin bu davranışını açıklayabilir mi? 900 memset(&amp;new_ckpt_info,'\0',sizeof(CKPT_INFO)); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_** HDR),i_offset); (gdb) **903 prev_offset = cp_node-&gt;offset;** (gdb) **905 m_CPND_CKPTINFO_READ(ckpt_info,(char *)cb-&gt;shm_addr.ckpt_addr+sizeof(CKPT_ HDR),i_offset);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) **908 bitmap_offset = client_hdl/32;** (gdb) **910 bitmap_value = cpnd_client_bitmap_set(client_hdl%32);** (gdb) …

4
Photoshop iki görüntüyü nasıl bir araya getiriyor? [kapalı]
Kapalı. Bu soru Yığın Taşması yönergelerini karşılamıyor . Şu anda cevapları kabul etmiyor. Bu soruyu geliştirmek mi istiyorsunuz? Stack Overflow için konuya uygun olması için soruyu güncelleyin . 1 yıl önce kapalı . Bu soruyu geliştirin Biri, uygulamamda aynı efektleri yeniden üretebilmem için Photoshop'un iki görüntüyü nasıl karıştırdığını açıklayabilir mi?

3
Statik olarak bağlantılı kitaplıklar arasındaki sembol çarpışmalarıyla nasıl başa çıkılır?
Bir kitaplık yazarken en önemli kurallardan ve en iyi uygulamalardan biri, kitaplığın tüm sembollerini kitaplığa özel bir ad alanına yerleştirmektir. C ++, namespaceanahtar kelime nedeniyle bunu kolaylaştırır . C'de alışılagelmiş yaklaşım, tanımlayıcıların önüne bazı kütüphaneye özgü önekler getirmektir. C standardının Kuralları (güvenli derleme için) olanlar bazı kısıtlamalar koymak: AC derleyici …

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 




3
Neden ücretsiz geri dönüş değerini geçersiz kılar?
C kullanan bir kitap okuyorum ( POSIX Threads tarafından Programlama, Butenhof, 1997) ve aşağıdaki satırla karşılaştım: (void)free(data); Burada, datatahsis edilmiş bir yapıya sadece bir işaretçi, data = malloc(sizeof(my_struct_t)); Neden sonucudur freeiçin dışlandığımdı void? C anlayışımdan, bu iki nedenden dolayı mantıklı görünmüyor: Serbest işlev zaten geri döner void Kod dönüş değerini …
82 c  casting  free  void  legacy-code 

10
Ana işlevde argc ve argv'yi yeniden adlandırmak güvenli midir?
Bir çok program bir dizi argüman ve dizge dizisi için standart isimler kullanır. Ana işlevi görünüm prototip gibi: int main(int argc, char *argv[]);. Ama bu değişkenler için özel isimler seçersem bir şeyi bozar mıyım? Örneğin int main(int n_of_args, char *args[]); Derleyici bağlamında her şey yolunda. Bu değişkenler ana işlev için …
82 c++  c  main 

5
Stanford öğreticisi ile GCC arasındaki çelişki
Bu filme göre (yaklaşık 38 dakika), aynı yerel değişkenlere sahip iki fonksiyonum varsa, aynı alanı kullanacaklar. Yani aşağıdaki program yazdırılmalıdır 5. gccSonuçlarla derlemek -1218960859. neden? Program: #include &lt;stdio.h&gt; void A() { int a; printf("%i",a); } void B() { int a; a = 5; } int main() { B(); A(); return …

2
Anahtar durumu, kullanılmayan bir satırı yorumladıktan sonra derlenmez
İşte kodum: #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #include &lt;netdb.h&gt; #include &lt;sys/types.h&gt; #include &lt;sys/socket.h&gt; #include &lt;arpa/inet.h&gt; int main (void) { struct addrinfo hints; memset (&amp;hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_DGRAM; hints.ai_flags = AI_CANONNAME; struct addrinfo *res; getaddrinfo ("example.com", "http", &amp;hints, &amp;res); printf ("Host: %s\n", "example.com"); void …
82 c 

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.