«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
C ile iç içe bir kök hesaplama
Sadece iç içe geçmiş kök ifadesini yalnızca özyineleme kullanarak hesaplamak istendi . Aşağıda işe yarayan kodu yazdım, ama sadece bir işlevi ve 1 girişi kullanmamıza izin nverdim, kullandığım gibi 2 değil. Birisi bu kodu ifadeyi hesaplayacak bir işleve dönüştürmeme yardımcı olabilir mi? işlevler dışında herhangi bir kitaplığı kullanamazsınız <math.h>. n …
9 c  recursion  sqrt 

1
C ana parametre
Ana parametreleri görüntülemek zorunda olan bir kod yazdım, ama derlediğimde ve "*" programına yazdığımda dosya yapımı gösteriyor. Cmd'deki komut şuna benzer:program.exe 1 2 3 * #include <stdio.h> #include <stdlib.h> int main(int argc, char const* argv[]) { for (int i=0; i<argc; i++) printf("%s\n", argv[i]); return 0; } Sonuç: program 1 2 …


1
Farklı derleyicilerde boşluğa ** dönüştürme
Farklı derleyiciler aracılığıyla aşağıdaki kodu çalıştırıyorum: int main() { float **a; void **b; b = a; } Ben toplamak mümkün kadarıyla, void **bir değil başka pointer herhangi dönüşüm derlemek ya da en azından bir uyarı atmak gerektiğini araçlarının genel bir işaretçi. Ancak, işte benim sonuçlarım (tümü Windows üzerinde yapılır): gcc …
9 c++  c  cuda 

1
Eksik bir türün işaretçisi eksik olabilir mi?
Can int (*)[]tamamlanmamış bir tür olabilir mi? C 2018 6.2.5 1 diyor ki: Bir çeviri birimindeki çeşitli noktalarda bir nesne türü eksik (o türdeki nesnelerin boyutunu belirlemek için yeterli bilgiye sahip olmayabilir ) veya tam (yeterli bilgiye sahip) olabilir. Dolayısıyla, bir türün boyutu biliniyorsa, türün tamamlanmış olduğu görülmektedir. 6.2.6.1 28, …

1
Sürecin Linux'ta yeni dosya tanımlayıcı açmasını engelleyin, ancak soketler aracılığıyla dosya tanımlayıcılarının alınmasına izin verin
Şu anda bir soket çifti, çatal ayarlar ve daha sonra iletişim kurmak için bu soket çifti kullanan bir üst işlem var bir proje üzerinde çalışıyorum. Çocuk, bir dosyayı (veya başka bir dosya tanımlayıcı tabanlı kaynağı) açmak istiyorsa her zaman üst fdöğeye gitmeli, kaynağı istemeli ve soket çifti aracılığıyla gönderilmelidir. Ayrıca …
9 c  linux  system-calls 

3
LLVM neden gereksiz bir değişken ayırıyor?
İşte bir enum tanımı ve mainişlevi olan basit bir C dosyası : enum days {MON, TUE, WED, THU}; int main() { enum days d; d = WED; return 0; } Aşağıdaki LLVM IR'ye aktarılır: define dso_local i32 @main() #0 { %1 = alloca i32, align 4 %2 = alloca i32, …
9 c  llvm  llvm-codegen 

1
CHAR_WIDTH bildirilmedi
‘CHAR_WIDTH’ undeclared Bu basit programı derlemeye çalıştığımda hatayı alıyorum : #include <stdio.h> #include <limits.h> int main() { printf("CHAR_BIT = %d\n", CHAR_BIT); printf("CHAR_WIDTH = %d\n", CHAR_WIDTH); return (0); } ile gcc ./show_char_width.c -o show_char_width ve gcc: GNU C sürüm 8.3.0, GMP sürüm 6.1.2, MPFR sürüm 4.0.2, MPCR sürüm 4.0.0 tarafından derlenen …
9 c  gcc 

1
Çok basit koddan “Yasadışı donanım talimatı”
Şüpheli bir iddiayı araştırırken , bu küçük test programını yazdımnoway.c int proveit() { unsigned int n = 0; while (1) n++; return 0; } int main() { proveit(); return 0; } Bunu test, anladım: $ clang -O noway.c $ ./a.out zsh: illegal hardware instruction ./a.out Wat. Optimizasyon olmadan derlersem beklendiği …

1
Mandelbrot brainf *** programını çalıştırırken neden programım takılıyor?
C becerilerimi geliştirmek istedim, bu yüzden bazı programların fikirlerini araştırıyorum. Birisi basit bir Brainf *** yorumlayıcısı ve sonra bir derleyici oluşturmayı önerir. İşte buradayım. Yorumlayıcıyı oluşturdum ve Mandelbrot programı dışında beklendiği gibi çalışıyor: A mandelbrot set fractal viewer in brainfuck written by Erik Bosman +++++++++++++[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>+++++++++++++++[[ >>>>>>>>>]+[<<<<<<<<<]>>>>>>>>>-]+[>>>>>>>>[-]>]<<<<<<<<<[<<<<<<<<<]>>>>>>>>[-]+ <<<<<<<+++++[-[->>>>>>>>>+<<<<<<<<<]>>>>>>>>>]>>>>>>>+>>>>>>>>>>>>>>>>>>>>>>>>>> >+<<<<<<<<<<<<<<<<<[<<<<<<<<<]>>>[-]+[>>>>>>[>>>>>>>[-]>>]<<<<<<<<<[<<<<<<<<<]>> >>>>>[-]+<<<<<<++++[-[->>>>>>>>>+<<<<<<<<<]>>>>>>>>>]>>>>>>+<<<<<<+++++++[-[->>> >>>>>>+<<<<<<<<<]>>>>>>>>>]>>>>>>+<<<<<<<<<<<<<<<<[<<<<<<<<<]>>>[[-]>>>>>>[>>>>> …

1
C derleme zamanı kapsülleme nedir?
C'nin C ++ 'a göre avantajlarını araştırırken, bu paragrafa rastladım: C'de kapsülleme yapmanın standart yolu, bir yapıyı iletmek ve sadece işlevler aracılığıyla verilerine erişime izin vermektir. Bu yöntem ayrıca derleme zamanı kapsüllemesi oluşturur. Derleme zamanı kapsülleme, veri yapısı üyelerini, istemci kodunu (arayüzümüzü kullanan diğer kod) yeniden derlemeden değiştirmemize olanak tanır. …
9 c 

6
C işaretçisi ile bit bildirimi ve operatör ile dizi bildirimi
Aşağıdaki kodu anlamak istiyorum: //... #define _C 0x20 extern const char *_ctype_; //... __only_inline int iscntrl(int _c) { return (_c == -1 ? 0 : ((_ctype_ + 1)[(unsigned char)_c] & _C)); } Obenbsd işletim sistemi kaynak kodundan ctype.h dosyasından kaynaklanır . Bu işlev, bir karakterin bir kontrol karakteri mi yoksa …
9 c  openbsd 

3
foo (geçersiz) vs foo (geçersiz *)
Konuşan İşlevsel ve sözdizimsel, prototip bir fonksiyonu arasında bir fark yoktur int foo(void)ve int foo(void *)? Örneğin, int bar(int)ve arasındaki farkları biliyorum int bar(int *)- bunlardan biri int arıyor, diğeri int işaretçisi arıyor. Does voidaynı şekilde davranır?

3
C dilinde + (+ k--) ifadesi
Bu soruyu, aşağıdaki kodun çıktısını anlatmamız gereken bir testte gördüm. #include<stdio.h> int main(){ int k = 0; while(+(+k--)!=0) k=k++; printf("%d\n", k); return 0; } Çıktı -1. Yine de bunun cevabı olduğundan emin değilim. +(+k--)C'de ifade ne anlama geliyor?
9 c 


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.