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

7
İnt ile zemine yayınlama
Bunlar arasında herhangi bir fark var mı: float foo1 = (int)(bar / 3.0); float foo2 = floor(bar / 3.0); Anladığım kadarıyla her iki durumda da aynı sonuç var. Derlenen kodda herhangi bir fark var mı?
120 c++  c  floating-point 

10
İki boyutlu diziye bir işaretçi oluşturun
Statik bir 2 boyutlu diziye bir göstericiye ihtiyacım var. Bu nasıl yapılır? static uint8_t l_matrix[10][20]; void test(){ uint8_t **matrix_ptr = l_matrix; //wrong idea } Gibi her türlü hatayı alıyorum: uyarı: uyumsuz işaretçi türünden atama indisli değer ne dizi ne de işaretçi hata: geçersiz esnek dizi üyesi kullanımı
120 c  arrays  pointers 

9
C işaretçileri: sabit boyutlu bir diziye işaret etme
Bu soru oradaki C gurularına geliyor: C'de bir gösterici şu şekilde bildirilebilir: char (* p)[10]; .. temelde bu işaretçinin 10 karakterlik bir diziyi gösterdiğini belirtir. Bunun gibi bir gösterici bildirmenin en güzel yanı, p'ye farklı boyutta bir dizi gösterici atamaya çalışırsanız derleme zamanı hatası alacağınızdır. Basit bir karakter göstericisinin değerini …
120 c  pointers  size 

13
C veya C ++ 'da çağrı yığınını yazdır
Belirli bir işlev her çağrıldığında çağrı yığınını çalışan bir işlemde C veya C ++ 'da dökmenin bir yolu var mı? Aklımdaki şey şuna benzer: void foo() { print_stack_trace(); // foo's body return } Nerede print_stack_tracebenzer şekilde çalışır callerPerl. Veya bunun gibi bir şey: int main (void) { // will print …
120 c++  c  linux  callstack 

6
C'de stderr'e nasıl yazdırabilirim?
C yılında Stdout'a yazdırma ile, kolay printfgelen stdio.h. Ancak, stderr'e nasıl yazdırabilirim? fprintfGörünüşe göre bunu başarmak için kullanabiliriz , ancak sözdizimi garip görünüyor. Belki printfstderr'e yazdırmak için kullanabiliriz ?
120 c  printf  stderr 

1
CMAKE'de -fPIC derleyici seçeneğini eklemenin deyimsel yolu nedir?
Bunu yapmanın en az 3 yolu ile karşılaştım ve hangisinin deyimsel yol olduğunu merak ediyorum. Bunun neredeyse evrensel olarak herhangi bir statik kitaplığa yapılması gerekir. CMake'deki Makefile oluşturucunun bunu statik kitaplıklara otomatik olarak eklememesine şaşırdım. (bir şeyi kaçırmıyorsam?) target_compile_options(myLib PRIVATE -fPIC) add_compile_options(-fPIC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic") Başka varyasyonların …
120 c++  c  cmake 


27
C'deki bir tamsayıda en yüksek ayarlanmış biti (msb) bulmanın en hızlı / en verimli yolu nedir?
Bir n tamsayısına sahipsem ve en anlamlı bitin konumunu bilmek istiyorsam (yani, en az anlamlı bit sağdaysa, en uzaktaki 1 olan en soldaki bitin konumunu bilmek istiyorum), bulmanın en hızlı / en verimli yöntemi nedir? ffs()POSIX'in strings.h'deki ilk biti bulmak için bir yöntemi desteklediğini biliyorum , ancak buna karşılık gelen …


2
Linux'ta birden çok iş parçacığı ile sinyal işleme
Linux'ta, bir program (muhtemelen birden fazla iş parçacığı olan) SIGTERM veya SIGHUP gibi bir sinyal aldığında ne olur? Hangi iplik sinyali keser? Birden çok iş parçacığı aynı sinyali alabilir mi? Tamamen sinyalleri işlemeye ayrılmış özel bir iş parçacığı var mı? Değilse, sinyali işleyecek iş parçacığı içinde ne olur? Sinyal işleyici …
119 c  linux  multithreading  signals  ipc 



6
C karakter dizisi başlatma
Aşağıdaki şekillerde başlattıktan sonra char dizisinde ne olacağından emin değilim. 1. char buf[10] = ""; 2. char buf[10] = " "; 3.char buf[10] = "a"; Durum 2 için, sanırım buf[0]olmalı ' ', buf[1]olmalı '\0've gelen buf[2]etmek buf[9]rastgele içerik olacaktır. Durumda 3 için, sanırım buf[0]olmalı 'a', buf[1]olmalı '\ 0' ve gelen …

6
Stdin'in bir terminal mi yoksa boru mu olduğunu tespit et?
pythonHiçbir argüman olmadan terminalden " " çalıştırdığımda Python etkileşimli kabuğunu getiriyor. cat | pythonTerminalden " " çalıştırdığımda etkileşimli modu başlatmıyor. Her nasılsa herhangi bir girdi almadan bir boruya bağlı olduğunu tespit etmiştir. C veya C ++ veya Qt'de benzer bir algılamayı nasıl yaparım?
118 c++  c  qt  pipe  stdin 

9
Bellek sızıntıları ne kadar ileri gidebilir?
Birçok kez bellek sızıntılarıyla karşılaştım. Genellikle mallocyarın yokmuş gibi konuştuğumda veya FILE *kirli çamaşırlar gibi sallanıp durduğumda . Genelde tüm belleğin en azından program sona erdiğinde temizlendiğini varsayıyorum (okuyun: umutsuzca). Program sona erdiğinde veya çöktüğünde sızan belleğin toplanmayacağı durumlar var mı? Cevap dilden dile büyük ölçüde değişiyorsa, o zaman C …
118 c++  c  memory  memory-leaks 

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.