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

4
Neden herkes standart C türleri yerine yazıyor?
Kullanmak isterseniz Qt , sen kucaklamalısın quint8, quint16benzeri ve. GLib'i kullanmak istiyorsanız, hoş geldiniz guint8, guint16vb. On Linux vardır u32, s16benzeri ve. uC / işletim tanımlar SINT32, UINT16ve benzeri biçimde. Ve bunların bazı kombinasyonlarını kullanmak zorunda kalırsanız, belaya hazırlıklı olsanız iyi olur. Üzerinde Çünkü makineniz u32edilecektir typedefüzerine d longve quint32olacak …
103 c++  c  stdint 

12
Neden karakter yerine C karakter değişmez değerleri var?
C ++ 'da sizeof('a') == sizeof(char) == 1. Bu sezgisel anlam ifade eder, çünkü 'a'bir karakter kelimesi kelimesine ve sizeof(char) == 1standart tarafından tanımlandığı gibi. Ancak C'de sizeof('a') == sizeof(int). Yani, C karakter değişmezlerinin aslında tamsayı olduğu görülmektedir. Nedenini bilen var mı? Bu C tuhaflığından pek çok söz bulabiliyorum ama …
103 c++  c  char  sizeof 

7
Bir programı yavaş çalıştırın
Linux'ta herhangi bir işletim sistemi parametresini değiştirerek bir C ++ programını daha yavaş çalıştırmanın bir yolu var mı? Bu şekilde, söz konusu program gerçekten daha yavaş bir makinede çalışırsa ne olacağını simüle etmek isterim. Başka bir deyişle, daha hızlı bir makine, söz konusu programa göre daha yavaş bir makine gibi …
103 c++  c  linux  unix  ubuntu 

8
Kayan nokta değerinin hassasiyetini korumak için Printf genişlik belirticisi
printfBir kayan nokta tanımlayıcısına uygulanabilecek, çıktıyı gerekli sayıda anlamlı basamağa otomatik olarak biçimlendirecek bir genişlik belirleyicisi var mı , böylece dizeyi geri tararken, orijinal kayan nokta değeri elde ediliyor mu? Örneğin, ondalık basamak floathassasiyetine a yazdırdığımı varsayalım 2: float foobar = 0.9375; printf("%.2f", foobar); // prints out 0.94 Çıktıyı taradığımda, …

4
C kodunda C ++ kitaplığını kullanma
Verileri yönetmek için çeşitli sınıflar sağlayan bir C ++ kitaplığım var. Kütüphanenin kaynak koduna sahibim. Kitaplığın C kodu ve C ++ kodu ile aynı anda kullanılabilmesi için C işlev çağrılarını desteklemek için C ++ API'yi genişletmek istiyorum. GNU araç zincirini (gcc, glibc vb.) Kullanıyorum, bu nedenle dil ve mimari desteği …
103 c++  c  gcc  glibc 

12
C'de komut satırı bağımsız değişkenleri ayrıştırılıyor mu?
C de iki dosyayı satır satır, kelime kelime veya karakter karakter karşılaştırabilen bir program yazmaya çalışıyorum.Komut satırı seçeneklerini okuyabilmeli -l -w -i or --... seçeneği -l ise, dosyaları satır satır karşılaştırır. seçeneği -w ise dosyaları kelime kelime karşılaştırır. seçenekler ise - otomatik olarak sonraki bağımsız değişkenin ilk dosya adı olduğunu …

2
Void'de && ne anlama geliyor * p = && abc;
Bir kod parçasıyla karşılaştım void *p = &&abc;. Burada ne önemi &&var? Rvalue referanslarını biliyorum ama &&bu bağlamda farklı olduğunu düşünüyorum . Ne geliyor &&belirtmek void *p = &&abc;?
102 c++  c  gcc  operators 

10
Numaradan sonra "f"
fNumaralardan sonra ne ifade ediyor ? Bu C'den mi yoksa Amaç-C'den mi? Bunu sabit bir sayıya eklememek arasında bir fark var mı? CGRect frame = CGRectMake(0.0f, 0.0f, 320.0f, 50.0f); Neden sadece yazmadığımı açıklayabilir misin: CGRect frame = CGRectMake(0, 0, 320, 50);

6
snprintf ve Visual Studio 2010
Bir proje için VS 2010 kullanarak takılıp kalacağım kadar talihsizim ve aşağıdaki kodun hala standartlara uymayan uyumlu derleyici kullanılarak oluşturulmadığını fark ettim: #include <stdio.h> #include <stdlib.h> int main (void) { char buffer[512]; snprintf(buffer, sizeof(buffer), "SomeString"); return 0; } (C3861: 'snprintf' hatasıyla derleme başarısız: tanımlayıcı bulunamadı) Bunun VS 2005 ile geri …

11
Tek bağımsız değişkenli (dönüşüm belirteçleri olmadan) printf neden kullanımdan kaldırıldı?
Okuduğum bir kitapta, printftek bir argümanın (dönüşüm belirteçleri olmadan) kullanımdan kaldırıldığı yazılıyor . Değiştirilmesini önerir printf("Hello World!"); ile puts("Hello World!"); veya printf("%s", "Hello World!"); Birisi bana neden printf("Hello World!");yanlış olduğunu söyleyebilir mi? Güvenlik açıkları içerdiği kitapta yazılmıştır. Bu güvenlik açıkları nelerdir?

7
C'de dizi başlatma hakkında kafa karışıklığı
C dilinde, şöyle bir dizi başlatırsanız: int a[5] = {1,2}; bu durumda, dizinin açıkça başlatılmamış tüm öğeleri örtük olarak sıfırlarla başlatılacaktır. Ama şöyle bir dizi başlatırsam: int a[5]={a[2]=1}; printf("%d %d %d %d %d\n", a[0], a[1],a[2], a[3], a[4]); çıktı: 1 0 1 0 0 Anlamıyorum, neden yerine a[0]yazdırıyor ? Tanımlanmamış bir …

14
C / C # / C ++ ile geriye doğru döngü yapmanın en iyi yolu nedir?
Bir dizide geriye doğru gitmem gerekiyor, bu yüzden şöyle bir kodum var: for (int i = myArray.Length - 1; i >= 0; i--) { // Do something myArray[i] = 42; } Bunu yapmanın daha iyi bir yolu var mı? Güncelleme: C # 'ın bunun için bazı yerleşik mekanizmaları olduğunu umuyordum: …
102 c#  c++  c 


7
C int dizisini sıfırlayın: en hızlı yol?
Sahip olduğumuzu varsayarsak T myarray[100]T = int, unsigned int, long long int veya unsigned long int ile sahip tüm içeriğini sıfırlamanın en hızlı yolu nedir (sadece başlatma için değil, aynı zamanda içeriği programımda birkaç kez sıfırlamak için) ? Belki memset ile? Gibi dinamik bir dizi için aynı soru T *myarray …
102 c++  c  arrays  memset 


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.