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

1
Java'nın C'den daha kolay ayrıştırılmasını sağlayan nedir?
C ve C ++ dilbilgilerinin içeriğe duyarlı olduğu gerçeğini biliyorum ve özellikle C'de bir "lexer hack" e ihtiyacınız var. Öte yandan, Java'yı yalnızca İki dil arasındaki önemli benzerliğe rağmen, 2 adet ileriye dönük bakış. Ayrıştırmayı daha uygun hale getirmek için C ile ilgili neyi değiştirmeniz gerekir? Soruyorum çünkü C'nin bağlam …
90 java  c  parsing  grammar 

16
İ ++ 'nın iş parçacığı güvenli olmadığını duydum, ++ i iş parçacığı güvenli mi?
İ ++ 'nın iş parçacığı güvenli bir ifade olmadığını duydum, çünkü derlemede orijinal değeri bir yerde geçici olarak depolamaya, artırmaya ve sonra değiştirerek, bir bağlam anahtarı tarafından kesintiye uğrayabilir. Ancak, ++ i'yi merak ediyorum. Anlayabildiğim kadarıyla bu, 'r1, r1, 1 ekle' gibi tek bir montaj talimatına indirgenecek ve sadece bir …
90 c++  c  multithreading 

8
Bir C işaretçisini NULL olarak başlatmak mümkün müdür?
Şöyle şeyler yazıyordum char *x=NULL; varsayımıyla char *x=2; charadres 2'ye bir işaretçi oluşturacaktır . Ancak, GNU C Programlama Öğreticisi'ndeint *my_int_ptr = 2; , tamsayı değerini , tahsis edildiğinde 2rasgele adres ne olursa olsun sakladığını söylüyor my_int_ptr. Bu benim kendi ima görünüyor char *x=NULLdeğeri ne olursa olsun atayan NULLbir etmek döküm …

10
C ++ ile bağlayıcı dilini belirleyemiyor
Hem Visual Studio 2010 hem de Cygwin ile Windows 7 x64'te bir merhaba dünya programı çalıştırmaya çalışıyorum, ancak ikisi de işe yaramıyor gibi görünüyor. Dizin yapım aşağıdaki gibidir: HelloWorld -- CMakeLists.txt -- src/ -- -- CMakeLists.txt -- -- main.cpp -- build/ A ve cd buildardından a yazıyorum ve bunu cmake …
90 c++  c  cmake 

4
İçe Aktarma Kitaplığı nasıl çalışır? Detaylar?
Bunun inekler için oldukça basit görünebileceğini biliyorum. Ama bunu çok net hale getirmek istiyorum. Bir Win32 DLL kullanmak istediğimde, genellikle sadece LoadLibrary () ve GetProcAdderss () gibi API'leri çağırırım. Ancak son zamanlarda DirectX9 ile geliştiriyorum ve d3d9.lib , d3dx9.lib vb. Dosyaları eklemem gerekiyor . LIB'nin statik bağlantı için olduğunu ve …
90 c++  c  windows  visual-c++ 

4
Memmove neden memcpy'den daha hızlıdır?
Zamanının% 50'sini memmove'da geçiren bir uygulamada performans sıcak noktalarını araştırıyorum (3). Uygulama, sıralanmış dizilere milyonlarca 4 baytlık tamsayı ekler ve eklenen değere yer açmak için verileri "sağa" kaydırmak için memmove kullanır. Beklentim, hafıza kopyalamanın son derece hızlı olmasıydı ve memmove'da bu kadar çok zaman harcanmasına şaşırdım. Ama sonra memmove'nin yavaş …
90 c++  c  performance  memory 

12
C Bellek Yönetimi
C'de hafızayı nasıl yönettiğinizi gerçekten izlemeniz gerektiğini hep duymuşumdur. Ve hala C öğrenmeye başlıyorum, ama şimdiye kadar, ilgili aktiviteleri yönetmek için herhangi bir hafıza yapmak zorunda kalmadım .. Her zaman değişkenleri serbest bırakmak ve her türlü çirkin şeyler yapmak zorunda olduğumu hayal ettim. Ancak durum böyle görünmüyor. Birisi bana (kod …
90 c  memory 


6
GCC ve Clang ayrıştırıcıları gerçekten el yazısı mı?
GCC ve LLVM-Clang kullandığınız görülüyor el yazısı özyinelemeli kökenli ayrıştırıcıları ve değil üretilen Bison-Flex tabanlı, aşağıdan yukarıya ayrıştırma makinesi. Buradaki biri lütfen durumun bu olduğunu onaylayabilir mi? Ve eğer öyleyse, ana akım derleyici çerçeveleri neden el yazısı ayrıştırıcıları kullanıyor? Güncelleme : bu konuyla ilgili ilginç blog burada

3
"Olduğu gibi" kuralı tam olarak nedir?
Başlığın dediği gibi, "Olduğu gibi" kuralı tam olarak nedir? Alınacak tipik bir cevap şudur: Programın gözlemlenebilir davranışını değiştirmeyen tüm kod dönüşümlerine izin veren kural Zaman zaman bu kurala atfedilen belirli uygulamalardan davranışlar almaya devam ediyoruz. Çoğu zaman yanlış. Peki bu kural tam olarak nedir? Standart, bu kuralı bir bölüm veya …
90 c++  c  optimization  c++-faq  as-if 

7
Bir işlev işaretçisini başka bir türe çevirme
void (*)(void*)Geri arama olarak kullanılmak üzere bir işlev işaretçisini kabul eden bir işlevim olduğunu varsayalım : void do_stuff(void (*callback_fp)(void*), void* callback_arg); Şimdi, böyle bir işleve sahipsem: void my_callback_function(struct my_struct* arg); Bunu güvenle yapabilir miyim? do_stuff((void (*)(void*)) &my_callback_function, NULL); Ben baktım bu soruya ve sana 'uyumlu işlev işaretçileri' artığını söylüyorlar bazı …

14
Yığın yukarı veya aşağı doğru büyüyor mu?
Bu kod parçasını c: int q = 10; int s = 5; int a[3]; printf("Address of a: %d\n", (int)a); printf("Address of a[1]: %d\n", (int)&a[1]); printf("Address of a[2]: %d\n", (int)&a[2]); printf("Address of q: %d\n", (int)&q); printf("Address of s: %d\n", (int)&s); Çıktı: Address of a: 2293584 Address of a[1]: 2293588 Address of …
90 c  memory  stack 

10
Sabit ve Sabit Uçucu Arasındaki Fark
Bir değişkeni volatileher yeni değer güncellendiğinde ilan edersek Bir değişkeni olduğu gibi ilan edersek consto değişkenin değeri değişmez O const volatile int temp; halde değişkeni tempyukarıdaki gibi bildirmenin faydası nedir ? Olarak ilan edersek ne olur const int temp?
90 c  embedded 

3
C89 / C90 standartları nerede PDF formatında bulunabilir?
C89 / C90 standardının ücretsiz bir kopyasını arıyorum , ancak hiçbir yerde bulamıyorum! Onu bulmak neden bu kadar zor? C99 ve C11 standartlarının internette bir kopyasını almak çok kolaydır. Stack Overflow sorularında bile Geçerli C veya C ++ standart belgelerini nerede bulabilirim? ve C Standardı, Elde Etme Standardı aradığımı içermiyor. …
90 c  ansi  c89 


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.