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



12
C enum'dan değer yerine metin yazdır
int main() { enum Days{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday}; Days TheDay; int j = 0; printf("Please enter the day of the week (0 to 6)\n"); scanf("%d",&j); TheDay = Days(j); //how to PRINT THE VALUES stored in TheDay printf("%s",TheDay); // isnt working return 0; }
89 c  enums 

6
Derleyiciler, diğer döngü türlerine göre do-while döngüleri için daha iyi kod üretir mi?
Zlib sıkıştırma kitaplığında (diğerlerinin yanı sıra Chromium projesinde kullanılan) bir yorum vardır; bu, C'deki bir do-while döngüsünün çoğu derleyicide "daha iyi" kod oluşturduğunu ima eder. İşte göründüğü kod pasajı. do { } while (*(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && *(ushf*)(scan+=2) == *(ushf*)(match+=2) && scan …

9
A +++++ b neden çalışmıyor?
int main () { int a = 5,b = 2; printf("%d",a+++++b); return 0; } Bu kod aşağıdaki hatayı verir: hata: artış işlenen olarak ldeğer gerekli Ama baştan sona boşluk koyarsam a++ +ve ++bo zaman iyi çalışır. int main () { int a = 5,b = 2; printf("%d",a++ + ++b); return …
89 c  lvalue 

7
Linux çekirdeği kendini nasıl derleyebilir?
Makineme bir Linux sistemi kurduğumda Linux çekirdeğinin derleme sürecini tam olarak anlamıyorum. İşte kafamı karıştıran bazı şeyler: Çekirdek C ile yazılmıştır, ancak bir derleyici kurulmadan çekirdek nasıl derlendi? Çekirdek derlenmeden önce makineme C derleyicisi kuruluysa, derleyici kurulmadan derleyicinin kendisi nasıl derlenebilir? Birkaç gün kafam çok karıştı, cevabın için teşekkürler.

4
"Uçucu" tanımı bu kadar uçucu mu yoksa GCC bazı standart uyum sorunları mı yaşıyor?
Derleyici belleğe bundan sonra bir daha erişilemeyeceğini düşünse bile (WinAPI'den SecureZeroMemory gibi) belleği her zaman sıfırlayan ve optimize edilmeyen bir işleve ihtiyacım var. Uçucu olmak için mükemmel bir aday gibi görünüyor. Ancak bunu GCC ile çalıştırmakta bazı sorunlar yaşıyorum. İşte örnek bir işlev: void volatileZeroMemory(volatile void* ptr, unsigned long long …
89 c++  c  gcc  standards 

3
Threadsafe vs yeniden giren
Geçenlerde, "malloc iş parçacığı güvenli mi?" Başlıklı bir soru sordum. ve bunun içinde "malloc yeniden mi giriyor?" diye sordum. Tüm yeniden girenlerin iş parçacığı için güvenli olduğu izlenimindeydim. Bu varsayım yanlış mı?


2
Vdso ve vsyscall nedir?
yaptım sudo cat /proc/1/maps -vv Çıktıyı anlamaya çalışıyorum. Beklendiği gibi bellek eşleme segmentine eşlenen çok sayıda paylaşılan kitaplık görebiliyorum. 7f3c00137000-7f3c00179000 r-xp 00000000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00179000-7f3c00379000 ---p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c00379000-7f3c0037a000 r--p 00042000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037a000-7f3c0037b000 rw-p 00043000 08:01 21233923 /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8 7f3c0037b000-7f3c00383000 r-xp 00000000 08:01 21237216 /lib/x86_64-linux-gnu/libnih-dbus.so.1.0.0 7f3c00383000-7f3c00583000 …
89 c  linux  linux-kernel  kernel  vdso 

13
Bu program nasıl işliyor?
#include <stdio.h> int main() { float a = 1234.5f; printf("%d\n", a); return 0; } Bir 0!! Bu nasıl mümkün olabilir? Gerekçe nedir? Ben kasten bir koyduk %diçinde printfdavranışını incelemek için deyimi printf.
88 c++  c  memory  printf  endianness 

8
Bir öğeyi aramanın verimli yolu
Geçenlerde bir röportaj yaptım ve bana bir " arama " sorusu sordular . Soru şuydu: Her bir öğenin bitişiğindeki öğeleriyle karşılaştırıldığı +1veya -1bunlarla karşılaştırıldığı bir (pozitif) tamsayı dizisi olduğunu varsayalım . Misal: array = [4,5,6,5,4,3,2,3,4,5,6,7,8]; Şimdi 7konumunu arayın ve geri dönün. Bu cevabı verdim: Değerleri geçici bir dizide saklayın, sıralayın …

13
## önişlemci operatörünün uygulamaları ve dikkate alınması gereken şeyler nelerdir?
Önceki sorularımın çoğunda belirtildiği gibi, K&R ile çalışıyorum ve şu anda ön işlemcideyim. Daha ilginç şeylerden biri - önceki C öğrenme girişimlerimden daha önce hiç bilmediğim bir şey - ##önişlemci operatörüdür. K & R'ye göre: Önişlemci operatörü ## , makro genişletme sırasında gerçek bağımsız değişkenleri birleştirmek için bir yol sağlar. …

4
Yığın değişkenleri GCC __özniteliği __ ((hizalı (x))) ile hizalı mı?
Takip koduna sahibim: #include <stdio.h> int main(void) { float a[4] __attribute__((aligned(0x1000))) = {1.0, 2.0, 3.0, 4.0}; printf("%p %p %p %p\n", &a[0], &a[1], &a[2], &a[3]); } Ve şu çıktıya sahibim: 0x7fffbfcd2da0 0x7fffbfcd2da4 0x7fffbfcd2da8 0x7fffbfcd2dac Adresi neden a[0]birden fazla değil 0x1000? Tam olarak ne __attribute__((aligned(x)))yapar? Bu açıklamayı yanlış mı anladım ? Gcc …

17
C türü güçlü mü?
Wikipedia'dan alıntı yapmak için : Pek çok türde örtük dönüşümü destekleyen yaygın olarak kullanılan iki dil C ve C ++ 'dır ve bazen bunların zayıf yazılmış diller olduğu iddia edilir. Bununla birlikte, diğerleri, bu dillerin, farklı türlerdeki işlenenlerin nasıl karıştırılabileceğine dair yeterince kısıtlama getirdiğini, ikisinin güçlü tipte diller olarak görülmesi …

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.