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

8
C'de değişken bildirim yerleştirme
Uzun zamandır C'de tüm değişkenlerin işlevin başında bildirilmesi gerektiğini düşündüm. C99'da kuralların C ++ ile aynı olduğunu biliyorum, ancak C89 / ANSI C için değişken bildirim yerleştirme kuralları nelerdir? Aşağıdaki kod başarıyla gcc -std=c89ve ile derlenir gcc -ansi: #include <stdio.h> int main() { int i; for (i = 0; i …
129 c  declaration  c89 

6
Soket kitaplığında recv çağırırken recv arabelleğim ne kadar büyük olmalı
C'deki soket kitaplığı hakkında birkaç sorum var. Sorularımda değineceğim bir kod parçası. char recv_buffer[3000]; recv(socket, recv_buffer, 3000, 0); Recv_buffer'ın ne kadar büyük olacağına nasıl karar veririm? 3000 kullanıyorum ama keyfi. recv()arabelleğimden daha büyük bir paket alırsa ne olur ? Recv'yi tekrar aramadan tüm mesajı alıp almadığımı ve alınacak hiçbir şey …
129 c  sockets  buffer  recv 


15
C programlamada void pointer kavramı
C programlama dilinde tip atama yapmadan bir boşluk göstericisinin referansını kaldırmak mümkün müdür? Ayrıca, bir işaretçiyi alıp onu bir boşluk göstericisinde saklayabilen bir işlevi genellemenin herhangi bir yolu var mı ve bu boşluk işaretçisini kullanarak genelleştirilmiş bir işlev yapabilir miyiz? örneğin: void abc(void *a, int b) { if(b==1) printf("%d",*(int*)a); // …
129 c  void-pointers 


9
Bir derleyici, malloc / free / new / delete üzerinde belleği 0xCD, 0xDD, vb. Olarak ne zaman ve neden başlatır?
Ben derleyici bazen gibi belirli desenleri ile bellek başlatılır biliyorum 0xCDve 0xDD. Bilmek istediğim şey bunun ne zaman ve neden olduğu. Ne zaman Bu kullanılan derleyiciye özel mi? Bununla ilgili olarak aynı şekilde mi çalışıyor malloc/newve free/deleteçalışıyor? Platforma özel mi? LinuxVeya gibi diğer işletim sistemlerinde gerçekleşecek VxWorksmi? Neden Anladığım kadarıyla, …

3
Aşağıdaki program, C89 modunda derlendiğinde "C89" ve C99 modunda derlendiğinde "C99" çıktıını nasıl verir?
Bu C programını web'den buldum: #include <stdio.h> int main(){ printf("C%d\n",(int)(90-(-4.5//**/ -4.5))); return 0; } Bu programla ilgili ilginç olan şey, derlendiğinde ve C89 modunda çalıştırıldığında, yazdırması C89ve C99 modunda derlenip çalıştırıldığında yazdırmasıdır C99. Ancak bu programın nasıl çalıştığını çözemiyorum. printfYukarıdaki programdaki ikinci argümanın nasıl çalıştığını açıklayabilir misiniz ?
128 c  printf  comments  c99  c89 

12
Python'u makine koduna derlemek mümkün müdür?
Python'u (muhtemelen bir ara C temsili aracılığıyla) makine koduna derlemek ne kadar mümkün olabilir? Muhtemelen bir Python çalışma zamanı kitaplığına bağlanması gerekecek ve Python standart kitaplığının Python olan herhangi bir parçasının da derlenmesi (ve bağlanması) gerekecektir. Ayrıca, ifadelerin dinamik değerlendirmesini yapmak istiyorsanız Python yorumlayıcısını paketlemeniz gerekir, ancak belki de buna …
128 python  c  linker  compilation 

30
Enum türü bir değişkeni dizeye nasıl dönüştürebilirim?
Enum türündeki değişkenlerin değerlerini göstermek için printf nasıl yapılır? Örneğin: typedef enum {Linux, Apple, Windows} OS_type; OS_type myOS = Linux; ve ihtiyacım olan şey printenum(OS_type, "My OS is %s", myOS); tamsayı değil, "Linux" dizesi göstermelidir. Sanırım, önce değer indeksli bir dizi dizisi oluşturmalıyım. Ama bunu yapmanın en güzel yolu mu …
128 c++  c  preprocessor  ansi-c 

10
İşaretçi ifadeleri: * ptr ++, * ++ ptr ve ++ * ptr
Son zamanlarda kendi başıma anlayamadığım bu problemle karşılaştım. Bu üç İfade GERÇEKTEN ne anlama geliyor? *ptr++ *++ptr ++*ptr Ritchie'yi denedim. Ancak bu 3 operasyonla ilgili söylediklerini maalesef takip edemedi. İşaretçiyi / işaret edilen değeri artırmak için bunların hepsinin yapıldığını biliyorum. Öncelik ve değerlendirme sırası hakkında pek çok şey olabileceğini de …
128 c++  c  pointers  increment 

7
C / C ++ 'da 0 boyutlu bir dizi tanımlarsam ne olur?
Merak ediyorum, int array[0];kodda sıfır uzunluklu bir dizi tanımlarsam aslında ne olur ? GCC hiç şikayet etmiyor. Örnek Program #include <stdio.h> int main() { int arr[0]; return 0; } açıklama Aslında Darhazer'ın yorumlarındaki değişken uzunluk gibi işaret edilmek yerine sıfır uzunluklu dizilerin bu şekilde başlatılıp başlatılmadığını anlamaya çalışıyorum. Bunun nedeni, …
127 c++  c  arrays 

3
Aynı soket üzerinde göndermek / almak için paralel çağrılar geçerli midir?
Aynı soket üzerinde bir iş parçacığından gönder ve diğerinden geri çağırabilir miyiz? Aynı soket üzerindeki farklı evrelerden birden fazla gönderimi paralel olarak çağırabilir miyiz? İyi bir tasarımın bundan kaçınması gerektiğini biliyorum, ancak bu sistem API'lerinin nasıl davranacağı konusunda net değilim. Aynı şekilde de iyi bir belge bulamıyorum. Yöndeki herhangi bir …
127 c  networking  sockets 



5
Python (ve Python C API): __new__ ve __init__
Sormak üzere olduğum soru Python'un __new__ ve __init__ kullanımının bir kopyası gibi görünüyor ? ama ne olursa olsun, __new__ve arasındaki pratik farkın tam olarak ne olduğu benim için hala belirsiz __init__. Bunun __new__nesneler yaratmak için olduğunu ve __init__nesneleri başlatmak için olduğunu söylemeden önce , açık konuşayım: Anlıyorum. Aslında, bu ayrım …
126 python  c  python-c-api 

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.